等雨成冰的个人主页

http://www.qtcn.org/bbs/u/130507  [收藏] [复制]

等雨成冰

不求与人相比,但求超越自己。

  • 8

    关注

  • 6

    粉丝

  • 43

    访客

  • 等级:新手上路
  • 总积分:8
  • 保密,2011-01-01

最后登录:2016-09-09

更多资料

日志

【FAQ】C# 调用 VC 编译的库的回调函数运行时崩溃

2016-08-05 14:08
实例:
  1. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            public unsafe  delegate bool DataCallback_Callback(char* data, int len);

原因分析:
C# 在调用时,需要将委托声明为静态的类成员变量。因为委托是托管代码,会被垃圾回收机制回收,而 VC DLL 函数是非托管代码,且回调需要委托才能正常运行,如果委托被回收,回调函数将会出错。
解决方法:
去掉:[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
改成:
  1. public unsafe  delegate bool SetDataCallBack(char* data, int len);


分类:c#|回复:0|浏览:1097|全站可见|转载
 

下一篇:

上一篇: 【FAQ】VS2010 如何配置 C# 使用指针?

Powered by phpwind v8.7 Certificate Copyright Time now is:04-25 08:24
©2005-2016 QTCN开发网 版权所有 Gzip disabled