gpt4 book ai didi

c++ - extern "C"dllexport 产生奇怪的名字

转载 作者:太空狗 更新时间:2023-10-29 21:02:27 25 4
gpt4 key购买 nike

我正在尝试使用可以使用 rundll32.exe 执行的方法来编写库,但是我似乎无法强制生成正确的导出名称:

在 32 位配置上我得到 DoStuff(x,x,x,x)
在 64 位配置上,我得到 DoStuff

这是为什么?

工具:Visual Studio 2012; window 8

代码:

extern "C" __declspec(dllexport) void __stdcall DoStuff(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
{
MessageBoxA(NULL, lpszCmdLine, "Cookies", 0);
}

最佳答案

我相信这是因为您在 stdcall 函数上使用了 dllexport。 x86 上 stdcall 的约定是被调用方从堆栈中删除参数。因此,参数计数作为名称的一部分包含在内。在 x64 上,标准调用约定是寄存器传递,因此不包括参数信息。

关于c++ - extern "C"dllexport 产生奇怪的名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317550/

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