如何解决找不到WinAPI CreateDialog Ressource错误0x715
我有一个用C编写的旧dll。目前,它没有接口,但我需要在其中添加一个对话框。
我使用VS2017并尝试了以下方法:
使用VS2017资源编辑器,我添加了一个对话框(ID:IDD_DIALOG_REPLAY,由资源编辑器在resource.h文件中自动定义为101),并添加了以下代码来创建我的对话框:
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_LINK_CLASS | ICC_STANDARD_CLASSES | ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
HWND hDialog = 0;
hDialog = CreateDialog(pSGL->hInstance,MAKEINTRESOURCE(IDD_DIALOG_REPLAY),NULL,WndProc);
if (!hDialog)
{
char buf [100];
wsprintf (buf,"Error x%x",GetLastError ());
MessageBox (0,buf,"CreateDialog",MB_ICONEXCLAMATION | MB_OK);
return 1;
}
ShowWindow(hDialog,SW_SHOW);
注1:消息循环已经存在于同一线程中执行的另一个dll中
注2:第一次使用回调函数WndProc,它是非常标准的并且基本上执行DefWindowProc函数
当我编译dll(设置了ressource编译详细选项时)时,我收到以下消息:
1>Writing DIALOG:101,lang:0x40c,size 452.
1>Writing AFX_DIALOG_LAYOUT:101,size 2.
当我在VS2017中打开dll的二进制文件时,我看到有一个对话框ID 101
=>该对话框实际上存在于我的二进制文件中。
但是当我执行它时,出现错误0x715:ERROR_RESOURCE_TYPE_NOT_FOUND,当然,该对话框没有创建。
注意:无论对话框中是否包含控件,或者对话框是否为空,这种情况都会发生
我绝对不知道为什么会这样。任何帮助都将受到欢迎。
预先感谢
Antoine
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。