C++调用C#的DLL

因为需要用到混合编程,就找了一些资料,根据这些大牛们的记载,自己也学到了很多。


1、首先生成一个DLL类库

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ClassLibrary1

{

    public class Class1

    {

        private string name;

        public string Name

        {

            get

            {

                return name;

            }

            set

            {

                name = "Your Name: " + value;

            }

        }

    }

}

生成DLL库还是比较简单的,以上完成之后直接进入到第二步。

2、然后新建一个C++控制台应用程序:

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。


#include "stdafx.h"

#using "C:\Users\Administrator\Desktop\C+++++\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll"

#include <iostream>

#include <stdio.h>

#include <string>

using namespace std;

 

using namespace ClassLibrary1; 

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

{

Class1 ^c = gcnew Class1();  

c->Name = "zzj";  

printf("%s\n",c->Name);

//cout<<c->Name<<endl;

return 0;

}

这些完成之后就是调用DLL。看着比较简单吧,这还没有结束,还是要注意细节的使用。

3、

在“属性”->“配置属性”->“常规”->“公共语言运行库支持”中选取“公共语言运行库支持(/clr)”。

 

再修改下,“属性”->“配置属性”->C/C++->“代码生成”->“运行时库”中选取“多线程 DLL (/MD)”。

 

然后就是“右键”---“引用”---“添加引用”---“浏览”---DLL库浏览添加进去。

 

之后就是将DLL文件拷贝到当前使用文件的debug文件夹中。


到这里才算是结束呢。

4、需要注意:

在使用DLL中的类时,//注意一定要用 定义对象 一定要用gcnew 申请新建。

C#编写的类库中的类文件没有什么特殊的要求,但是在定义C++类 自身的C++类要用 ref class 定义。

使用总结:

1)用C#写任何的类库

2C++ 中要引用此类库

3)创建C#对象时要用gcnew ;

4) C++ 编译设置一定设置为:支持公共语言运行时支持(/clr)

4) 自身的C++类要用 ref class 定义。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值