方法1:使用CLR实现C++中导入C#封装Dll文件方法

DLL文件:C#和C++的区别

DLL文件常描述为动态库文件,用来对重要代码进行封装。在实际项目应用中,需要用来各种各样的库实现不同功能,但是这些库的编程语言并不一致。

C++:封装的是标准Dll(非托管类)
C# :封装的是非标准的DLL(托管类),不可以使用Dllimport调用,Dlllmport是调用标准类(非托管类)。

由于dll文件不同,因此不能直接调用。本文主要介绍利用CLR如何实现在C++中调用C#的dll库文件

1.新建C#的DLL库文件

1.在visostudio中,新建C#类库
在这里插入图片描述2.根据需要设定项目属性配置:框架版本和平台
在这里插入图片描述
在这里插入图片描述
3.编写被调用的方法

	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;
	using System.Threading.Tasks;

namespace ClassLibrary6
{
    public class Class1
    {
        int addtem(int a,int b)
        {
            return a + b;
        }
    }
}

4.生成需要的dll文件:ClassLibrary.dll
在这里插入图片描述

2.新建C++工程,导入库文件

1.新建C++工程,控制台工程

在这里插入图片描述

2.将生成ClassLibrary.dll文件放入工程执行文件中

在这里插入图片描述

3.工程配置:

3.1 公共语言支持

在这里插入图片描述

3.2 符合模式

在这里插入图片描述

4.在工程中编写代码,调用封装库中方法

#include <iostream>
#using "..//Debug//ClassLibrary6.dll"

using namespace ClassLibrary6;

int main()
{
    Class1^ DLL = gcnew(Class1);

    int result = DLL->addtem(1, 2);

    std::cout << result;

}

通过以上配置,就可以实现借助CLR实现C++中加载托管类dll文件。

*但是一些环境比如QT中设置“公共语言支持,导致警告报错,因此可以借助”dllExport和“CLR类库”实现,可参考本人后续文章

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值