问题描述
我是否可以命名导出的dll函数?当我使用dll导出查看器时,显示的函数名称是完整的声明。我想使用JNA(JNI)来访问DLL中的函数,并且函数名必须是函数名而不是完整的声明。如果这是重复的,请指出!!
解决方法
如果将函数声明为extern“ C”(或在C文件而不是C ++中实现),则实际上仅使用__declspec(dllexport)语法即可完成(即,没有.def文件)。 / p>
extern "C"
{
__declspec(dllexport) void __stdcall MyFunc(std::string &);
}
通常比导出带有别名的错误名称要容易得多(因为您随后需要跟踪错误名称以分配别名)。