C#和C++模块的合成问题

zhouliang0806 2011-04-01 04:13:21
我现在有个项目是两个人一起做的,一部分是用C++写的,一部分是C#写的,现在要把两边的程序合在一起。有什么好的方法。
1、可以将C++写的部分打包成exe,然后C#直接调用吗?
2、或者是将C++部分打包成dll,C#直接调用?
...全文
222 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
足球中国 2011-04-03
  • 打赏
  • 举报
回复
如果要使用c++的类。可不是这么容易。
建议c++写成静态的。这样就通用了。把类的调用写在c++里。
大山里的松 2011-04-03
  • 打赏
  • 举报
回复
c++ 代码做成动态库或者Com C#来调用

对于P/Invoke codeplex上有个工具 可以生成C#和C++对应的接口声明代码。

http://clrinterop.codeplex.com/releases/view/14120
zilong4460072 2011-04-02
  • 打赏
  • 举报
回复
VC++ CLR CLR Library
cc_net 2011-04-02
  • 打赏
  • 举报
回复
选VC++ --- CLR --- CLR Library

不要直接选VC++。列的不全
zhouliang0806 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cc_net 的回复:]
如果是托管C++定义的类

C#引入DLL和namespace后可以直接使用
[/Quote]
如果是用托管C++做封装dll,新建C++项目时,选哪一项啊
cc_net 2011-04-01
  • 打赏
  • 举报
回复
如果是托管C++定义的类

C#引入DLL和namespace后可以直接使用
beargo 2011-04-01
  • 打赏
  • 举报
回复
封装成COM组件即可。。做COM。需要去[assembly: ComVisible(true)]
然后提供的接口需要用interface做好接口。再继承去实现。。
interface里的每个接口再加上个ID顺序号属性。。就差不多了。。
要注意数组的参数在C++的转换。。这个貌似对应C++两个**的。忘了。。。不过差不多就这样吧。。
C++调用C#.....
zilong4460072 2011-04-01
  • 打赏
  • 举报
回复
我也看了那个帖子 好像不太好做 要把C++封装的DLL做成COM组件
zilong4460072 2011-04-01
  • 打赏
  • 举报
回复
看错了 你是要引用DLL中的类?
看看这个
zilong4460072 2011-04-01
  • 打赏
  • 举报
回复
把C++打包成DLL C#引用C++打包的DLL
我给你举个例子怎么用C++打包的DLL

比如我现在有个用C++开发的WinLockDLL.DLL,DLL中有个方法
int Add(int a,int b);

C#中引用代码

[DllImport("WinLockDll.DLL")]
public static extern int Add(int a,int b);

要把DLL放到C#项目的exe路径下,这样就可以再C#项目中使用Add()方法了
zhouliang0806 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmozhang 的回复:]
打包成DLL, 然后在C#里DllImport
或者
用managed C++把native C++包装一下再调用
[/Quote]
打包成dll遇到了问题,在C++中定义了一些类,那么怎么import到C#中呢?
目前,我查资料了解到的方法只有调用C++中定义的函数和数据,那在C++中定义的类,在C#中怎么实例化呢?
bdmh 2011-04-01
  • 打赏
  • 举报
回复
1、可以将C++写的部分打包成exe,然后C#直接调用吗?
2、或者是将C++部分打包成dll,C#直接调用?

这两种都可以的,不过c++多用来做dll接口
张飞不刮胡子 2011-04-01
  • 打赏
  • 举报
回复
打包成DLL, 然后在C#里DllImport
或者
用managed C++把native C++包装一下再调用

110,534

社区成员

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

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

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