本地C++如何调用C#类库

调用说明

方式一、Clr/c++语言调用C#,直接添加引用,using namespace **,即可。

方式二、Native C++调用C#,本说明是以Com组件的方式来使用的,步骤也比较繁琐。

 

环境介绍:WinXP/Win7;.Net2.0;IDE:VS2005/VS2008

步骤一注册

1.以管理员模式运行cmd.exe;

2.进入dll所在路径 ;例如:cd d:\\Lib 

3.输入:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm /u  ***.dll  /tlb:FileParser.tlb /codebase

               C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm ***.dll  /tlb:FileParser.tlb /codebase

(上面两行语句最好直接复制粘贴,避免空格等错误)


步骤二:实例项目设置(环境VS2008)

新建项目

设置项目属性:

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

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

3.      在相同的窗格中,确保将“MFC的使用”设置为“在共享DLL中使用MFC”。

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

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

 

二. 代码

#include "stdafx.h"

#include "string"

#include "afx.h"

#import "..\\CSharperInteroperator\\Debug\\***.tlb"//导入组件

#include <comutil.h>

#include <iostream>

 

#pragma comment(lib,"comsuppw.lib")


using namespace System;

using namespace FileParser;//使用namespace

using namespace std;


//简单的一个例子代码调用接口dll

int _tmain(int argc, _TCHAR* argv[])

{

     CoInitialize(NULL);//初始化

   //之后就可以使用dll中定义的类和方法了。

    CoUninitialize();//卸载

    return 0;

}

NOTICE:

1 使用#using引用C#DLL,而不是#include.

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

阅读更多

没有更多推荐了,返回首页