VisualStudio2019C#引用C++DLL

一定要确保解决方案平台一致(x64/x86),这个可能会导致很多不同的问题形式,但只要设定为一样的平台,即可解决

DLL头文件

1
extern "C" __declspec(dllexport) void printText(int year, int month, int day, int hour, char station[6]);		//不加"C"会出现找不到函数的问题

数据类型

由于C语言编写的DLL文件不支持String类型,调用DLL内函数需用char类型,故需转换常用的String至char

1
2
3
4
5
string str="content";
char[] c=str.toArray();

//顺便贴个char[]转字符串
str=new String(c);

参考资料

  1. VS2017中 C# dll引用(C生成dll,C++生成dll)小结
  2. c++创建dll导出函数名称
  3. c# char[]数组和字符串之间互转