随笔 - 6  文章 - 129  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(14)

随笔档案(6)

文章分类(467)

文章档案(423)

相册

收藏夹(18)

JAVA

搜索

  •  

积分与排名

  • 积分 - 822222
  • 排名 - 49

最新评论

阅读排行榜

评论排行榜

一、使用/clr编译MFC可执行文件或规则C# DLL函数.
    1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
    2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持(/clr)”。
    3、在相同的窗格中,确保将“MFC的使用”设置为“在共享DLL中使用MFC”。
    4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库/Zi”(而不是“/ZI”)。
    5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试DLL(/MDd)”或“多线程DLL(/MD)”之一。
二、在代码引用需要的dll.
 using <mscorlib.dll>. 
 using "DownloaFiles.dll"   //换成需要的dll文件。 
 using namespace System;
 using namespace ADMessage_test;  //换成dll中类所使用的namespace.
三、在C# DLL函数调用代码前加入#pragma managed
    这是manage和unmanage混合编程在MFC下的一种实现方式。
    以上介绍C++调用C# DLL函数,希望对你有所帮助。

四 、几点要记住:

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

  2 别忘了using namespace CSLib;

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


PS:附上自己成功运行C++代码

#include "stdafx.h"
#include <iostream>
//#using "..\..\SFCSDLL.dll" //右击项目-->引用...,添加新引用,将DLL添加到项目中,可以不用此行代码

using namespace std;
using namespace SFCSDLL;

int _tmain(int argc, _TCHAR* argv[])
{
 Class1 ^c = gcnew Class1();

 c->SFCSDLL_Create_Connection("127.0.0.1", 0, 0, 0, 0);
 c->SFCSDLL_Get_DLLVersion();
 c->SFCSDLL_Close_Connection();

 cout<<"end...";
 system("pause");
 return 0;
}

 



posted on 2013-03-12 15:13 Ke 阅读(3532) 评论(0)  编辑  收藏 所属分类: C#

只有注册用户登录后才能发表评论。


网站导航: