c#如何与非托管c++代码互通

windcsn 2013-08-12 09:27:09
如题。
c++代码不能写成托管的;想实现c#直接访问c++的类,c++也能直接回调c#提供的接口类。
相反的方向也是可以的。
请问如何实现?
...全文
251 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
补充下,因为是CLR类型项目,C++/CLR类库项目同样也是可以对C#项目进行引用的
  • 打赏
  • 举报
回复
用类库,C++/CLR类库项目里面写非托管代码,C#直接引用这个C++/CLR动态库
jshi123 2013-08-12
  • 打赏
  • 举报
回复
这个是非常繁琐的。 首先native c++类要写成 class __declspec(dllexport) CSimpleClass 这种表示从dll导出。 然后用dumpbin看导出的函数名字都是??0CSimpleClass@@QAE@ABV0@@Z像这样的mangled name。 然后c++类还有一个虚指针表_vtable,c#中要用unsafe结构模拟出来才能用。 看这篇文章: http://blogs.msdn.com/b/vcblog/archive/2008/12/08/inheriting-from-a-native-c-class-in-c.aspx
HopeInHeart 2013-08-12
  • 打赏
  • 举报
回复
C#调用 C++dll :http://blog.csdn.net/hopeinheart/article/details/9061149
夜色镇歌 2013-08-12
  • 打赏
  • 举报
回复
windcsn 2013-08-12
  • 打赏
  • 举报
回复
还有人帮忙回答吗?
windcsn 2013-08-12
  • 打赏
  • 举报
回复
thanks
ylly11111 2013-08-12
  • 打赏
  • 举报
回复
<dllImport>
windcsn 2013-08-12
  • 打赏
  • 举报
回复
====>发布成dll,或者写成服务 把c++写成dll? 那么回调c#的接口怎么办?
windcsn 2013-08-12
  • 打赏
  • 举报
回复
===>c#通过添加声明可以直接调用非托管代码 如何添加?有例子不?
hangang7403 2013-08-12
  • 打赏
  • 举报
回复
c#通过添加声明可以直接调用非托管代码
EnForGrass 2013-08-12
  • 打赏
  • 举报
回复
发布成dll,或者写成服务
sdsxc 2013-08-12
  • 打赏
  • 举报
回复
嗯 现在一般都是以链接库 就是DLL的形式 Google C# 调用C++dll 很成熟了
FTD_2009 2013-08-12
  • 打赏
  • 举报
回复
把C++写成Dll,然后在C#中调用
人生导师 2013-08-12
  • 打赏
  • 举报
回复
可以使用.NET 中的互操作来实现,你可以参考这本书:http://product.dangdang.com/product.aspx?product_id=20546679

110,567

社区成员

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

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

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