0

vc++ dll に関数があります。

void fun(unsigned int nchannel,int nFGHandle,void* i);

ここで、C# コードでこの dll を呼び出したいと思います。こんな感じで使っていますが、

[DllImport ("AVC.dll")]
public static extern void fun(UInt32 a,int b,ref void c );

だから聞きたい

  1. マーシュリングの必要はありますか?
  2. c#でvoid* iにref を使用する方法
4

1 に答える 1

2

私の知る限り、IntPtrマーシャリングvoid *に使用しますが、戻り値が必要な場合は、直接使用out <type>していくつかのオーバーロードを使用できます。

[DllImport ("AVC.dll")]
public static extern void fun(UInt32 a,int b, out int c );
[DllImport ("AVC.dll")]
public static extern void fun(UInt32 a,int b, out float c );

于 2012-06-22T05:50:12.993 に答える