java - 重命名DLL函数?
问题描述
有没有办法给我导出的 dll 函数命名?当我使用 dll 导出查看器时,显示的函数名称是完整的声明。我想使用 JNA (JNI) 来访问 DLL 中的函数,并且函数名需要是函数名而不是完整的声明。如有重复请指出!
解决方案
如果您将函数声明为 extern "C"(或在 C 文件而不是 C++ 中实现它),它实际上可以只使用 __declspec(dllexport) 语法(即,没有 .def 文件)来完成。
extern "C"
{
__declspec(dllexport) void __stdcall MyFunc(std::string &);
}
通常比导出带有别名的损坏名称要容易得多(因为您需要跟踪损坏的名称以分配别名)。
推荐阅读
- r - 如何使用 Reticulate 识别 Conda 以安装 SpacyR
- flutter-layout - D/skia (8919): Shader 编译错误_帮我解决这个问题
- c++ - 如何将 std::string 转换为不同类别的字符串?
- jquery - jQuery 切换时隐藏其他下拉菜单
- python-3.x - 如何将 pandas DataFrame 或 Series 与 seaborn 兼容?
- android - RecyclerView 偶尔显示“死”项
- python - Scrapy 和 Incapsula
- io - 使用客户端 clojurescript/re-frame 应用程序读取文件
- vue.js - 将站点部署为从代码沙箱进行网络化时出现未知错误
- linux - 从 Bash 脚本执行 GREP/CUT 命令时遇到问题