社区
C#
帖子详情
c#如何与非托管c++代码互通
windcsn
2013-08-12 09:27:09
如题。
c++代码不能写成托管的;想实现c#直接访问c++的类,c++也能直接回调c#提供的接口类。
相反的方向也是可以的。
请问如何实现?
...全文
251
17
打赏
收藏
c#如何与非托管c++代码互通
如题。 c++代码不能写成托管的;想实现c#直接访问c++的类,c++也能直接回调c#提供的接口类。 相反的方向也是可以的。 请问如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我真的不是菜鸟
2013-08-12
打赏
举报
回复
补充下,因为是CLR类型项目,C++/CLR类库项目同样也是可以对C#项目进行引用的
我真的不是菜鸟
2013-08-12
打赏
举报
回复
用类库,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
初学及入门
C#
C#
是从
C++
继承而来,既有
C++
和硬件交互的功能,也能像java一样web开发。很多人入门一门编程语言可能会有很多问题,本门课程从自身学习编程语言的基础上讲解
C#
,并且并行比较C,
C++
,java等语言,从而能够更整体理解...
基于
C++
/CLI实现
C#
与
C++
互调过程中的注意事项
其支持
托管
代码
和非
托管
代码
:
C++
/CLI 中既可以编写非
托管
代码
,也可以编写
托管
代码
。通过
C++
/CLI 的委托
代码
调用
C++
应用程序(非委托
代码
),从而生成.NET应用,实现基于
C#
的访问。其中,每个环节都是利用动态链接...
c#
与
c++
之间的交互
就需要 封送数据到非
托管
代码
或者 到
托管
代码
. 而且他们之间的类型也是不兼容的. 如
C#
里面的string类型,
c++
是没有的.所以 如果像传 Int ,double一般不会有问题.但是string 传值 最好用intptr . 指针类型互相...
使用IDispatch::Invoke函数在
C++
中调用
C#
实现的
托管
类库方法
CLRInterop简而言之是让非
托管
代码
与
托管
代码
之间可以相互调用的技术。这项技术可以使开发人员重用已有的
托管
或非
托管
组建,并根据自己的需要,权衡
托管
代码
的简易性
与非
托管
代码
的灵活性,选择适合自己实际情况的...
C#
重要概念之
托管
与非
托管
托管
是NET的一个专门概念,它是融于通用语言运行时(CLR)中的一种新的编程理念,因此完全可以把“
托管
”视为“.NET”。那么什么是“通用语言运行时”?通用语言运行时是".NET"框架应用程序的执行引挚。它提供了许多...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章