C#与C++移植问题,关于typedef的

Citron09 2016-09-21 02:32:36
不得不使用一个C++的dll,没有源文件,只有一个头文件,想把它移植到C#中,想问一下,C++头文件有个申明是
typedef int (*fun)(int a,int b);类型的,在C#怎么移植。有什么方法能替换么。没有是不是还得自己用C++把这个函数重新用非typedef写一次然后再用
...全文
183 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Citron09 2016-09-22
  • 打赏
  • 举报
回复
已经解决。感谢 CharlesSimonyi 以及 akirya的回答~
  • 打赏
  • 举报
回复
引用 3 楼 Citron09 的回复:
[quote=引用 1 楼 akirya 的回复:]
delegate int fun(int a,int b);
是调用,不好意思,没说清楚。使用delegate 的时候要使用[DLLImport("**.dll")],会报错,怎么解决。[/quote] dllimport 函数用的,类型不需要。在C#声明等价的就可以了 调用的时候只要类型符合就可以正确使用。
Citron09 2016-09-21
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
delegate int fun(int a,int b);
是调用,不好意思,没说清楚。使用delegate 的时候要使用[DLLImport("**.dll")],会报错,怎么解决。
encoderlee 2016-09-21
  • 打赏
  • 举报
回复
移植还是调用? 移植是指最终不再需要这个dll,而是使用纯C#代码实现这个dll的所有功能。 调用是指用C#调用这个dll导出的函数。 调用的话可以查阅一下pinvoke的资料。 像typedef int (*fun)(int a,int b);这样的函数指针,在c#中应该申明为: public delegate int fun(int a, int b);
  • 打赏
  • 举报
回复
delegate int fun(int a,int b);

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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