gpt4 book ai didi

windows - __stdcall 没有任何修饰

转载 作者:可可西里 更新时间:2023-11-01 10:27:41 24 4
gpt4 key购买 nike

我有一个 .dll 我怀疑使用了 __stdcall 函数,但是 完全 未修饰的名称(甚至没有下划线或 @ 符号)。我为它写了一个 .def 文件,别名如

func1 = func1
func1@4 = func1

但我认为 lib(我用它从 .def 文件创建导入库)忽略了别名(链接器仍然说 func1 @4 未定义)

如何创建将 func1@4 映射到 func1 的导入库?

最佳答案

我不知道是否可以用 lib.exe 创建正确的 .lib 文件,所以我建议创建一个 DLL,其中包含原始导出的函数 stub 动态链接库。

示例 dll.cpp 文件:

void __stdcall foo(int) {}

dll.def 文件:

EXPORTS
foo=foo

然后从 IDE 或命令行编译它:

cl dll.cpp /link /dll /def:dll.def /noentry

它将创建正确的 dll.lib 文件,因此您可以像这样使用它:

void __stdcall foo(int);
#pragma comment(lib, "dll")
int main()
{
foo(42);
}

关于windows - __stdcall 没有任何修饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com