0

C++ DLL ファイルがあり、C# の関数を使用する必要があります。C++ ファイルには、ServiceState に「Status」というメソッドがあります。そのブロックの C++ コードを以下に示します。

STDMETHODIMP ServiceState::Status(/*[out]*/VARIANT *Primary,VARIANT *Secondary ) 
{
if(primary()) 
     Primary->boolVal = TRUE;
else
     Secondary->boolVal = FALSE;

return true;

}

C++ プロジェクトをコンパイルし、Status.dllの出力を取得しました。次のようにC#コードで初期化しました。

 [DllImport(@"c:\Status.dll")]
 public static extern void ServiceState.Status(IntPtr Primary,IntPtr Secondary);

1) 初期化は正しいか?

2) メソッドには C++ のポインターがあるため、どの C# データ型をそのメソッドに渡す必要がありますか? & どのように? 私を案内してください。

ありがとう

4

0 に答える 0