将dll方法从C导出到C#.我为什么需要:“ extern” C“”
作者:互联网
在我的dll中,有一种我想导出的方法.
//作品:
extern "C" __declspec(dllexport)
//不会工作
__declspec(dllexport)
C出口:
extern "C" __declspec(dllexport) int Test();
C#导入:
[DllImport("CircleGPU2_32.DLL", EntryPoint = "Test",
CallingConvention = CallingConvention.StdCall)]
public static extern int Test();
为什么需要外部字母“ C”?
解决方法:
主要原因是要防止C名称修饰符修饰函数名称.
尝试在不使用外部“ C”的情况下导出它,并在Dependency Walker中检查生成的DLL,您将看到导出函数的名称完全不同.
标签:dllexport,c,c-2 来源: https://codeday.me/bug/20191010/1887024.html