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

sosoben 2015-04-09 08:41:09
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, ?????);
...全文
226 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sosoben 2015-04-09
  • 打赏
  • 举报
回复
引用 5 楼 lovelj2012 的回复:
[quote=引用 4 楼 sosoben 的回复:] [quote=引用 2 楼 lovelj2012 的回复:] C++的函数指针,在C#用委托(delegate)与之对应。 参考
你的参考里面 public void TestEventFunc(StringBuilder logMsg) { } 也是什么都没写啊,所以我不理解回调函数有什么用,直接写null效果一样吗?[/quote] 你的函数指针指向的函数实现什么东东?[/quote] 唉,就是说明书也没规定要写点什么啊 , 解释是这样的: funcIntHandler: When the set event at MMC card occurs,calls user function and transfers pointer of user function 例程上
void WINAPI isr_sub0( void) { // MMC Interrupt }  
stat = pmc4bpci_open( 0, isr_sub0);
就这样就是一个函数指针实例了 但另一个找到的例程
void isr_sub( int no )
{
	CMMCControl::int_flg[ no ] = 1;
	CMMCControl::command_N( no, 0x1, 0x0f );
	CMMCControl::_InW_N( no, RR3 );
	CMMCControl::command_N( no, 0x1, 0x0f );
	CMMCControl::_OutW_N( no, WR3, 0x0100 );
}
所以我又糊涂了
江南小鱼 2015-04-09
  • 打赏
  • 举报
回复
引用 4 楼 sosoben 的回复:
[quote=引用 2 楼 lovelj2012 的回复:] C++的函数指针,在C#用委托(delegate)与之对应。 参考
你的参考里面 public void TestEventFunc(StringBuilder logMsg) { } 也是什么都没写啊,所以我不理解回调函数有什么用,直接写null效果一样吗?[/quote] 你的函数指针指向的函数实现什么东东?
sosoben 2015-04-09
  • 打赏
  • 举报
回复
引用 2 楼 lovelj2012 的回复:
C++的函数指针,在C#用委托(delegate)与之对应。 参考
你的参考里面 public void TestEventFunc(StringBuilder logMsg) { } 也是什么都没写啊,所以我不理解回调函数有什么用,直接写null效果一样吗?
sosoben 2015-04-09
  • 打赏
  • 举报
回复
可以解释下回调函数的意义吗? RealCallbackFun 里面什么都没写啊? 直接写个null进去行不行啊,效果一样?
江南小鱼 2015-04-09
  • 打赏
  • 举报
回复
C++的函数指针,在C#用委托(delegate)与之对应。 参考
bdmh 2015-04-09
  • 打赏
  • 举报
回复
xian_wwq 2015-04-09
  • 打赏
  • 举报
回复
回调函数和c#中的delegate对应 回调简单这么理解,api的提供者不处理数据,给调用者留个处理数据的途径。 如果对于自己的业务来说不需要处理类似的内容,当然可以给null

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧