首页 > 解决方案 > 重命名DLL函数?

问题描述

有没有办法给我导出的 dll 函数命名?当我使用 dll 导出查看器时,显示的函数名称是完整的声明。我想使用 JNA (JNI) 来访问 DLL 中的函数,并且函数名需要是函数名而不是完整的声明。如有重复请指出!

标签: javacdlljava-native-interfacejna

解决方案


如果您将函数声明为 extern "C"(或在 C 文件而不是 C++ 中实现它),它实际上可以只使用 __declspec(dllexport) 语法(即,没有 .def 文件)来完成。

extern "C"
{
  __declspec(dllexport) void __stdcall MyFunc(std::string &);
}

通常比导出带有别名的损坏名称要容易得多(因为您需要跟踪损坏的名称以分配别名)。


推荐阅读