我正在尝试调用WinAPI函数DialogBox()
。在Microsoft website上,此函数被指定为user32.dll。但是,当试图通过将其声明为从dll导入的函数来导入此函数时,链接器告诉我它不存在。然后我试图在C:\ Windows \ System32 \ user32.dll中找到具有依赖性walker的函数,但该函数不存在。 (我可以看到那里所有其他花哨的函数文字。)这可能是什么原因以及如何解决这个问题?
我正在使用D编程语言。标准库中的Windows模块不会导入WinAPI中的完整功能集。因此,我有时必须手工进口东西。
答案 0 :(得分: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)
换句话说,C预处理器将函数重命名为DialogBoxParam。那是你唯一可以解雇的人。只需像宏一样传递零。