c# 与c++ 混合编程

在一个论坛里看到一个问题,感觉比较有意义,记录下:

“程序里面一个核心算法模块是用C++写的(遗传算法)而其他界面,数据库相关操作,三维二维显示都是在AE+c#做的。

不知道怎么把这两个结合在一起。

就是c#里面会将一些数据库里的数据传给C++模块,再从中获得计算结果数据。

感觉用文件太麻烦,但是c++和c#数据类型定义又不同。

 另外觉得,是不是要把c++编成dll,还是直接两个写到一个解决方案里面?”

回答:

1.把C++的编译成DLL,在C#中是可以调用的。

2.在c++中把要处理的功能封装成导出函数,编译成dll,然后c#导入dll,声明前面的函数即可调用

3.把之前C++的算法,写成ATL,使用之前,注册一下。
C#调用的时候直接在引用里添加这个DLL就可以,跟使C#自己的DLL一样。

4.com,做一个COM的DLL


看了大家讨论,感觉这个问题比较有意义,C#和C++各有长处,混合编程貌似一直没真正用过,有时间体验一下,呵呵!

你可能感兴趣的:(c# 与c++ 混合编程)