如何调用user32.dll中的DialogBox()函数?

Ral*_*zky 0 winapi dialog user32 dllimport

我正在尝试调用WinAPI函数DialogBox().在Microsoft网站上,此功能指定在user32.dll中.但是,当试图通过将其声明为从dll导入的函数来导入此函数时,链接器告诉我它不存在.然后我试图在C:\ Windows\System32\user32.dll中找到具有依赖性walker的函数,但该函数不存在.(虽然我可以看到所有其他花哨的函数文字.)可能是什么原因以及如何解决问题?

我正在使用D编程语言.标准库中的Windows模块不会导入WinAPI中的完整功能集.因此,我有时必须手工进口东西.

Han*_*ant 5

这是准确的,没有这样的功能.从WinUser32.h SDK头文件:

#define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
#define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
Run Code Online (Sandbox Code Playgroud)

换句话说,C预处理器将函数重命名为DialogBoxParam.那是你唯一可以解雇的人.像宏一样传递零.