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