c++调用c#dll和c++dll,vs2019

vs2019 c++调用c#写的dll

  • 一、c++调用c#dll
  • 二、c++调用c++dll

一、c++调用c#dll

打开vs2019,新建一个c++控制台程序项目,然后打开项目属性,设置成如下图的样子

关键点:公共语言运行时支持
c++调用c#dll和c++dll,vs2019_第1张图片

关键点:符合模式。
c++调用c#dll和c++dll,vs2019_第2张图片
关键点:活动解决方案下的x64,及平台x64
c++调用c#dll和c++dll,vs2019_第3张图片
然后,右键项目,点击引用
c++调用c#dll和c++dll,vs2019_第4张图片
点击引用后,会弹出一个界面,点击界面下边的浏览,找到目标dll文件,确定添加。

然后,关键的一步,把dll文件复制到项目的x64\debug\文件夹下。

第6、7行,为模板,按格式自行写入,一个是dll文件所在的目标,一个是dll文件的名字。我的dll文件名是ClassLibrary1.dll
c++调用c#dll和c++dll,vs2019_第5张图片

然后运行,就大功告成了!
c++调用c#dll和c++dll,vs2019_第6张图片

二、c++调用c++dll

打开vs2019,新建一个c++控制台程序项目,然后打开项目属性,设置成如下图的样子

关键点:符合模式
c++调用c#dll和c++dll,vs2019_第7张图片
关键点:公共语言运行时支持
c++调用c#dll和c++dll,vs2019_第8张图片
关键点:活动解决方案平台下x86,及平台win32
c++调用c#dll和c++dll,vs2019_第9张图片

然后,把dll文件复制到项目的debug文件夹内(如果是刚建立的项目没有debug这个文件夹,可放到和项目名同名的文件夹内,此同名内文件夹内有主函数cpp文件)。

然后写代码,必须加#include头文件。

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++调用c#dll和c++dll,vs2019_第10张图片
最后,因为c++调用两个不同语言的dll时项目属性设不一样,不同同时包含在一起运行。

你可能感兴趣的:(c++,c#,dll)