C#调用C++返回的结构体类型,甚至结构体指针类型

mobiqiliang 2013-11-18 08:02:56
做一个系统界面的时候用的是C#做的,但是算法是C++写的,现在需要C#接收C++传递的结构体指针,网上找了好多资料,都是似是而非的,最后又没能实现,求各位大侠整一个完整的调用过程啊,或者知道那里有亲测可用的文章给推荐一下,新人分不多,谢谢了
...全文
878 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2013-11-26
  • 打赏
  • 举报
回复
除了上面的方法,还有进程间通信的方式来传递C#跟C++之间的数据
mobiqiliang 2013-11-26
  • 打赏
  • 举报
回复
谢谢楼上各位了
许文君 2013-11-19
  • 打赏
  • 举报
回复
指针是可以传递的,但是没法调用,还是导出标准C接口,然后C#调用C接口吧
真相重于对错 2013-11-19
  • 打赏
  • 举报
回复
.net 和 win32是两种不同程序,二者要通信必须要了解对方的数据在内存中具体布局,所以不会有一个统一的解决方案,就是同样的c++函数声明,如果具体的实现不同,也可能会有不同的调用方式。 建议看看msdn下关于平台调用部分 一般70%的结构指针可以用intptr代替,但这个intptr C#如何构造,需要和c++保持一致
redui 2013-11-19
  • 打赏
  • 举报
回复
C#的普通类型都是封装的类,它完全不认识C++的结构体,给它指针也没用。C#和C++之间最好的联系方式就是COM接口,所以最好的解决方法就是把结构体封装成接口,把接口返回给C#,C#通过访问接口的属性来间接访问结构体成员的值。如果结构体成员中有其它结构体的指针,用同样的方式把结构体封装成接口
快乐鹦鹉 2013-11-19
  • 打赏
  • 举报
回复
用底层的类型啊。BSTR之类的
  • 打赏
  • 举报
回复
返回值是不用想了,你看看那个Win32SDK API返回结构体?都是通过参数传递结构体指针的。 参数传递结构体倒是没问题,看MSDN例子 http://msdn.microsoft.com/zh-cn/library/eadtsekz(v=vs.90).aspx

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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