Поделиться через


'As Any' не поддерживается в операторах Declare

Обновлен: Ноябрь 2007

'As Any' is not supported in 'Declare' statements

Тип данных Any использовался с инструкциями Declare в Visual Basic 6.0 и более ранних версиях, чтобы разрешить использование аргументов любых типов данных. Однако Visual Basic поддерживает перегрузку, и поэтому тип данных Any устарел.

Идентификатор ошибки: BC30828

Исправление этой ошибки

  1. В объявлениях параметров укажите конкретный используемый тип, например:

    Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" ( _
        ByVal lpBuffer As String, _
        ByRef nSize As Integer) _
        As Integer
    
  2. Используйте атрибут MarshalAsAttribute для указания As Any, когда вызываемой процедурой ожидается Void*.

    Declare Sub SetData Lib "..\LIB\UnmgdLib.dll" ( _
        ByVal x As Short, _
        <System.Runtime.InteropServices.MarshalAsAttribute( _
            System.Runtime.InteropServices.UnmanagedType.AsAny)> _
            ByVal o As Object)
    

См. также

Задачи

Пошаговое руководство. Вызов интерфейсов прикладного программирования (API) Windows

Основные понятия

Создание прототипов в управляемом коде

Ссылки

MarshalAsAttribute

Оператор Declare