c++调用c#的dll

一、使用/clr编译MFC可执行文件或规则C# DLL函数.
    1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
    2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持(/clr)”。
    3、在相同的窗格中,确保将“MFC的使用”设置为“在共享DLL中使用MFC”。(这个use standard windows librarys貌似也不影响)
    4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库/Zi”(而不是“/ZI”)。
    5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试DLL(/MDd)”或“多线程DLL(/MD)”之一。


二、在代码引用需要的dll.
 #using <mscorlib.dll>.  
 #using "***.dll"   //换成需要的dll文件。  
 using namespace System; 
 using namespace ***;  //换成dll中类所使用的namespace. 


三、在C# DLL函数调用代码前加入#pragma managed
    这是manage和unmanage混合编程在MFC下的一种实现方式。
    以上介绍C++调用C# DLL函数,希望对你有所帮助。

 

四 、几点要记住:

  1 使用#using引用C# DLL,而不是#include.记住有一个“#”哦,曾因为少了它而纠结好久;

  2 别忘了using namespace CSLib;

  3 使用C++/clr语法,采用正确的访问托管对象,即:使用 ‘^’,而不是 '*'。如:class1 ^p = gcnew class1(); p->func();

摘自:http://blog.163.com/zhangsonglinp5@126/blog/static/3193341420100230856373/

原文地址:https://www.cnblogs.com/syqun/p/DLL.html