vs2019 c++调用c#写的dll
一、c++调用c#dll
打开vs2019,新建一个c++控制台程序项目,然后打开项目属性,设置成如下图的样子
关键点:公共语言运行时支持

关键点:符合模式。

关键点:活动解决方案下的x64,及平台x64

然后,右键项目,点击引用

点击引用后,会弹出一个界面,点击界面下边的浏览,找到目标dll文件,确定添加。
然后,关键的一步,把dll文件复制到项目的x64\debug\文件夹下。
第6、7行,为模板,按格式自行写入,一个是dll文件所在的目标,一个是dll文件的名字。我的dll文件名是ClassLibrary1.dll

然后运行,就大功告成了!

二、c++调用c++dll
打开vs2019,新建一个c++控制台程序项目,然后打开项目属性,设置成如下图的样子
关键点:符合模式

关键点:公共语言运行时支持

关键点:活动解决方案平台下x86,及平台win32

然后,把dll文件复制到项目的debug文件夹内(如果是刚建立的项目没有debug这个文件夹,可放到和项目名同名的文件夹内,此同名内文件夹内有主函数cpp文件)。
然后写代码,必须加#include<windows>头文件。
main函数里可以这样写(dll文件名可更改。int a,int b为函数模板参数,可更改。“add”为函数名,add为代替,可改变):
cout << "Hello World!\n";//测试使用
HINSTANCE hDllInst;
hDllInst = LoadLibrary(L"DemoDll.dll");
typedef int(*PLUSFUNC)(int a, int b);
PLUSFUNC add = (PLUSFUNC)GetProcAddress(hDllInst, "add");
std::cout << add(78, 2) << endl;
如果dll文件里,只有一个add函数,记得参数保持一致。只写下图的9~14行,(包括9,14在内)即可。
如下图,里面的add、minus、test4等都是dll文件里面定义好的函数。
然后直接运行即可,如图所示,大功告成

最后,因为c++调用两个不同语言的dll时项目属性设不一样,不同同时包含在一起运行。
本文详细介绍如何在VS2019中使用C++调用C#和C++编写的DLL。针对C# DLL,需设置公共语言运行时支持和符合模式,并将DLL添加到项目引用中;对于C++ DLL,则需通过LoadLibrary和GetProcAddress函数进行调用。文章提供了具体步骤和代码示例。
3233





