现在的位置: 首页 > 综合 > 正文

P/Invoke传递的callback中会用到的一个很有用的属性

2018年04月06日 ⁄ 综合 ⁄ 共 313字 ⁄ 字号 评论关闭

就像这个帖子中提到的,如果要调用C/C++ dll export出来的一个函数,并且要传一个callback的delegate进去,就会产生一个问题: delegate默认的函数调用约定是stdcall,但是C++端一般会要求这个callback是cdecl的。这个问题在.net 1.1中没有好的解决方法,只能反汇编你的assembly然后手动修改对应delegate的属性。

在.net 2.0中,可以使用UnmanagedFunctionPointer Attribute来解决这个问题。因为它可以控制delegate中函数调用的calling convention。这个在.net CF编程中应该会比较有用,希望能够帮助有此需求的朋友。

抱歉!评论已关闭.