win32 DLL中创建的的对话框资源被应用程序调用无法识别的问题

在win32 DLL开发中遇到对话框资源无法被应用程序识别的问题,原因是使用CreateDialog时,传递的HINSTANCE参数错误。应当传递DLL自身的HINSTANCE,而非应用程序的。通过在DLL入口保存HINSTANCE全局变量,可以正确创建DLL内的对话框资源。
摘要由CSDN通过智能技术生成

今天使用win32封装了一个DLL,DLL中有很多对话框资源,然后应用程序加载这个DLL后创建对话框时找不到对话框资源,我程序中使用的是CreateDialog,第一个参数是Hinstance类型,之前使用的是如下代码:

//获取应用程序实例句柄:

HInstance  hInstance = (HINSTANCE ) GetWindowLong( NULL, GWL_HINSTANCE );

//创建对话框:

HWND  hWnd = CreateDilg( hInstance,MAKEINTRESOURCE(IDD_DLGNAME),m_hWndParent,DLGPROC);

然后在google中输入了 “win32 dialog in dll"然后在

stackoverflow发现了一段文字,如下:

You are passing NULL in the hInstance argument to CreateDialogParam(). That means the dialog resource wil be looked up in the executable that has loaded your DLL, not in the DLL itself. You should pass the HINSTANCE associated with your DLL instead.

看完上面的解释恍然大悟,<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值