当前位置: 代码迷 >> C# >> c++的函数转到C#里用调用,这个参数不知道如何转换
  详细解决方案

c++的函数转到C#里用调用,这个参数不知道如何转换

热度:18   发布时间:2016-05-05 04:09:16.0
c++的函数转到C#里用调用,这个参数不知道怎么转换
MMC_INT16U pmc4bpci_open(int id, void (WINAPI *funcIntHandler)(void));

引用
 void (WINAPI *funcIntHandler)(void)

这个在C#应该怎么定义?是回调函数? 应该怎么声明?

[DllImport("mc8041p.dll", EntryPoint = "open", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Winapi)]
        public static extern int open(int a, ?????); 
------解决思路----------------------
回调函数,用委托
http://www.cnblogs.com/dipwater/archive/2012/11/07/dipwater_delegate.html
------解决思路----------------------
C++的函数指针,在C#用委托(delegate)与之对应。

参考
------解决思路----------------------
引用:
Quote: 引用:

C++的函数指针,在C#用委托(delegate)与之对应。

参考


你的参考里面 
public void TestEventFunc(StringBuilder logMsg)     {     }  也是什么都没写啊,所以我不理解回调函数有什么用,直接写null效果一样吗?

你的函数指针指向的函数实现什么东东?
------解决思路----------------------
回调函数和c#中的delegate对应
回调简单这么理解,api的提供者不处理数据,给调用者留个处理数据的途径。
如果对于自己的业务来说不需要处理类似的内容,当然可以给null
  相关解决方案