void *通过ref传入C#

时间:2012-06-22 05:47:23

标签: c# visual-c++ pointers dll dllimport

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. 是否需要marshling?
  2. 如何在c#
  3. 中使用 void * i 的参考号

1 个答案:

答案 0 :(得分:2)

据我所知,你使用IntPtr来编组void *,但是,如果你需要返回值,你可以直接使用out <type>并有几个重载,例如:< / p>

[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 );