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
相关文章推荐
- C#调用C++导出类的一个实例
- C#调用C++代码完整实例
- C# 调用c++ 实例
- c#调用C/C++代码时出现的PInvokeStackImbalance异常实例及解决方式
- C# 调用c++ 实例
- c#调用C++ dll 报未将对象引用到设置对象的实例 的解决方案
- c#调用C++ dll 报未将对象引用到设置对象的实例 的解决方案
- C#调用C++生成的DLL(实例1)
- .net实例:使用C++调用C#的DLL
- C++生成dll和调用dll的方法实例
- C# 调用C++ DLL (二)
- C#调用C/C++ 动态链接库DLL(二)
- C# 中静态调用C++dll 和C# 中动态调用C++dll
- C#调用C++DLL,及回调函数、string参数传递的总结
- c#调用C++时处理tchar *转字符串
- Asp.net下C#自动化调用Word的实例与总结
- c#调用C++写的dll导出类,包含继承,重载等详细介绍(转载)
- C与C++之间相互调用实例方法讲解
- c# 调用c++的dll文件
- C#调用c++创建的dll