다음을 통해 공유


BC30828: 'Declare' 문에서는 'As Any'가 지원되지 않음

Any 데이터 형식은 모든 형식의 데이터를 포함할 수 있는 인수의 사용을 허용하기 위해 Visual Basic 6.0 및 이전 버전에서 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)
    

참고 항목