导出的函数符号名称重整

Joh*_*ane 3 dll d export name-mangling

我有一个D DLL,由我无法控制的C++程序加载.程序LoadLibrarys我的DLL并使用GetProcAddress查找名为"extension_load"的函数,该函数接受一个参数(一个指针).在我的D DLL中,我有:

extern (C) int extension_load(void* ptr) {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此名称需要导出为ex​​tension_load,但它将作为extension_load @ 4导出,因此GetProcAddress无法找到它.如何在没有名称修改的情况下将其设为plain extension_load?

Han*_*ant 5

您需要为链接器提供重命名导出的.def文件.文档在这里,您需要EXPORTS.