我试图调用WinAPI的函数DialogBox()
在微软网站这个功能被指定为在user32.dll中。 但是,试图通过它声明为函数从DLL导入导入此功能时,链接器告诉我,这是不存在的。 然后我试图在C依赖学步车找到函数:\ WINDOWS \ SYSTEM32 \ user32.dll中,但功能是不存在。 (我可以看到所有其他花哨的功能文字有虽然。)是一个什么原因为何,我怎么能解决问题呢?
我使用的是D编程语言。 从标准库中的窗口模块不会导入全套的WinAPI的功能。 因此,我有时不得不手工输入的东西。
这是准确的,没有这样的功能。 从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唯一的一个。 就像宏确实传递一个零。