“Declare”语句中不支持“As Any”

更新:2007 年 11 月

在 Visual Basic 6.0 和较早版本中,Any 数据类型与 Declare 语句一起使用,以允许使用可能包含任意数据类型的参数。但是,Visual Basic 支持重载,因而使 Any 数据类型过时。

**错误 ID:**BC30828

更正此错误

  1. 声明要使用的特定类型的参数;例如:

    Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" ( _
        ByVal lpBuffer As String, _
        ByRef nSize As Integer) _
        As Integer
    
  2. 如果调用的过程需要 Void*,请使用 MarshalAsAttribute 属性指定 As Any。

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

请参见

任务

演练:调用 Windows API

概念

在托管代码中创建原型

参考

MarshalAsAttribute

Declare 语句