我有一个 D DLL,它正在由我无法控制的 C++ 程序加载。程序 LoadLibrarys 我的 DLL 并使用 GetProcAddress 找到一个名为“extension_load”的函数,该函数接受一个参数(一个指针)。在我的 D DLL 中,我有:
extern (C) int extension_load(void* ptr) {
return 0;
}
这个名称需要导出为extension_load,但它被导出为extension_load@4,所以GetProcAddress 找不到它。如何在不修改名称的情况下使其成为普通的 extension_load?
最佳答案
您需要为链接器提供重命名导出的 .def 文件。文档 are here ,你需要导出。
关于dll - 导出的函数符号名称修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422783/