您的位置:首页 > 编程语言 > C语言/C++

c++调用c#的dll + 实例

2012-08-20 20:21 204 查看

c++调用c#的dll + 实例

一、使用/clr编译MFC可执行文件或规则C# DLL函数.

1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。

2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持(/clr)”。

3、在相同的窗格中,确保将“MFC的使用”设置为“在静态库中使用 MFC”

// 4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库/Zi”(而不是“/ZI”)。

5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试DLL(/MDd)”或“多线程DLL(/MD)”之一。

二、在代码引用需要的dll.

//http://topic.csdn.net/t/20030714/21/2027862.html 参考问题

using <mscorlib.dll>;//如果你用托管方式,那么尽量就用.NET Frameworks提供的一切可用的类库

using "DownloaFiles.dll"; //换成需要引用的的dll文件。 放置到你的源程序文件加下

using namespace System; //系统提供的命名空间

using namespace ADMessage_test; //换成dll中类所使用的namespace.,如果有多层次的,要分别引用,一层一层的包含。

//另外,查看C#的DLL中封装的命名空间和相关类及类的方法属性,可以用C#打开,添加引用中看到。

三、在C# DLL函数调用代码前加入#pragma managed

这是manage和unmanage混合编程在MFC下的一种实现方式。

以上介绍C++调用C# DLL函数,希望对你有所帮助。

四 、几点要记住:

  1 使用#using引用C# DLL,而不是#include.我就是想当然的使用了后者,所以浪费了一上午的时间;

  2 别忘了using namespace CSLib;

  3 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子‘^’,而不是星星‘*’。

4 将要调用的C#的DLL文件要放在两个地方,一个是在源代码文件夹下,另一个是在生成EXE文件所在的文件夹,否则不能调试DLL,或者程序错误退出。请注意和重视Visual Studio的输出窗口的提示内容。

现附上我在研究C++调用C#的DLL文件时使用的一个小实例上传到我的资源目录下,欢迎互相借鉴学习。

http://download.csdn.net/detail/canhui2009/4513750
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: