DLL 関数に渡している文字列、または DLL 関数から戻される文字列は、デフォルトでは Unicode Strings として処理されます。 DLL 関数に ANSI String 引数が必要な場合は、DllFunctionOptions 属性の CharacterSet プロパティーを使用します。
<Dll( "user32.dll" )> Public Interface IUserDll32Functions <DllFunctionOptions(CharacterSet:=CharacterSet.Ansi)> Function SendMessageA( _ ByVal obj As TestObject, ByVal message As Integer , ByVal wParam As Integer , ByRef lParam As String ) As Integer End Interface
DLL 呼び出しから String を ByRef 引数 として戻した場合、String のサイズが 256 文字以下であれば、デフォルトの動作に従います。 戻される String が 256 文字を超えている場合は、作成された String を保持できるだけの長さを持つ、Visual Basic String を渡します。