如何调用在user32.dll中的对话框()函数?(How do I call the Dialog

2019-10-30 15:47发布

我试图调用WinAPI的函数DialogBox() 在微软网站这个功能被指定为在user32.dll中。 但是,试图通过它声明为函数从DLL导入导入此功能时,链接器告诉我,这是不存在的。 然后我试图在C依赖学步车找到函数:\ WINDOWS \ SYSTEM32 \ user32.dll中,但功能是不存在。 (我可以看到所有其他花哨的功能文字有虽然。)是一个什么原因为何,我怎么能解决问题呢?

我使用的是D编程语言。 从标准库中的窗口模块不会导入全套的WinAPI的功能。 因此,我有时不得不手工输入的东西。

Answer 1:

这是准确的,没有这样的功能。 从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 preprocesor重命名功能DialogBoxParam。 这就是你可以的PInvoke唯一的一个。 就像宏确实传递一个零。



文章来源: How do I call the DialogBox() function in the user32.dll?