C#如何引用C++类

rendao0563 2010-08-26 11:18:03
比如我有个C++类


CMove
{
public:
void Do();
private:
...
};

class CPlayer
{
public:
void Do();

CMove &GetMove(){ return m_oMove;}
private:
CMove m_oMove;
};


可能是个集合类, 有没有什么办法能在C#直接使用该类. 或者别的变通手法都可以. 最好是自动化的.不用自己一层一层包装, 因为该类接口可能比较多.
...全文
610 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyzflying 2010-09-20
  • 打赏
  • 举报
回复
编译成dll文件。
在你要用的C#工程中添加对此dll的引用就可以了啊!
周药师 2010-09-09
  • 打赏
  • 举报
回复
做成DLL 或者自己去转类型

不过最好用C++写关键部分的DLL
rendao0563 2010-09-09
  • 打赏
  • 举报
回复
麻烦各位大哥看清楚问题. 我想找个自动化的方法. 手动封装谁不会. 几百个接口. 类套类. 并且这些代码也是自动生成的.

http://blog.e-works.net.cn/395307/articles/16044.html

上面是一个关于C++类动态组件化, 我的意思就是找那么个东西. 能够自动化搞定这件事情.
gengchenhui 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 sp1234 的回复:]

引用 5 楼 bloodish 的回复:
想直接用,就用C++/CLI二次封装.
用PInvoke是无法直接使用C++内部类的


很对。

竟然大多数号称搞过c++开发的人不懂,可见这些c++程序员......
[/Quote]
还好没做过C++,要不然不是连我也说进去了。呵呵
qwe123rewq 2010-09-08
  • 打赏
  • 举报
回复
就用C#也能写。。。把C++代码写成流。。存起来。生成文件。然后在生成一个bat文件。。去执行你之前生成的文件。不就哦了嘛。。我就这样写过。。但是有点麻烦。
djunlin 2010-09-08
  • 打赏
  • 举报
回复
做成DLL然后在C#里面引用
兔子-顾问 2010-09-08
  • 打赏
  • 举报
回复
曲线救国,做成com组件,提供c#使用,就可以用类了。
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bloodish 的回复:]
想直接用,就用C++/CLI二次封装.
用PInvoke是无法直接使用C++内部类的
[/Quote]

很对。

竟然大多数号称搞过c++开发的人不懂,可见这些c++程序员......
qqrto 2010-09-08
  • 打赏
  • 举报
回复
想要直接用,恐怕是不行的,建议还是先封装成dll再引用使用吧
rendao0563 2010-09-08
  • 打赏
  • 举报
回复
再顶一次看看.
烈火蜓蜻 2010-08-26
  • 打赏
  • 举报
回复
类是没有办法引用的吧,只能引用其中的方法
qqiuzaihui 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bloodish 的回复:]
想直接用,就用C++/CLI二次封装.
用PInvoke是无法直接使用C++内部类的
[/Quote]
UP
bloodish 2010-08-26
  • 打赏
  • 举报
回复
想直接用,就用C++/CLI二次封装.
用PInvoke是无法直接使用C++内部类的
十八道胡同 2010-08-26
  • 打赏
  • 举报
回复
编译成dll c#就可以引用了

但是引用的时候需要注意类型之间的区别!
healer_kx 2010-08-26
  • 打赏
  • 举报
回复
源码级别的不可能,你把这些C++编译成DLL,C#可以通过P/Invoke去调用它们,
你也可以用ATL包装一下,形成一个COM组件,C#也可以调用。
或者把这些代码放到C++/CLI工程中,这样C#通过访问这个工程也OK了。一般就这三种办法。
捷哥1999 2010-08-26
  • 打赏
  • 举报
回复
可以通过平台调用实现,参考资料
1、创建Win32 DLL,并在C#里面调用
2、如果涉及到参数传递,需要看看

C#与C/C++类型对照表
  • 打赏
  • 举报
回复
建一个C++类库(新建项目的时候可以选择)。。。
然后再C#项目中引用这个类库即Dll文件
qiuqingpo 2010-08-26
  • 打赏
  • 举报
回复
强烈关注!
rendao0563 2010-08-26
  • 打赏
  • 举报
回复
看样子是没办法了. 只能手动包装. 哎.
简单DE生活 2010-08-26
  • 打赏
  • 举报
回复
创建Win32 DLL,并在C#里面调用
加载更多回复(7)

110,526

社区成员

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

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

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