| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 928 人关注过本帖
标题:请教用Dll做资源的问题
只看楼主 加入收藏
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
结帖率:0
收藏
 问题点数:0 回复次数:3 
请教用Dll做资源的问题
工程不依赖MFC,这个跳过
我做了个Dll的库,只放资源,就是一个Dialog(ID_Dialog)
在另一个库中CreateDialog

有关代码
HINSTANCE hMainInst = GetMoudleHandle(NULL);
HINSTANCE hDllInst = LoadLibrary("ResDll.dll");   //结果这个HINSTANCE和主程序的INST相同

HWND hWnd = CreateDialog(hMainInst ,MAKINGRESOURCE(ID_Dialog), NULL ,DlgProc);

结果GetLastError 一直是1813 就是资源找不到

兄弟们 帮帮看看! 谢谢了
搜索更多相关主题的帖子: Dll 资源 
2010-07-27 09:40
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 
另外 我看了MAKINGRESOURCE(ID_Dialog)的值也一直是个NULL

也用了GetMoudleHandle("ResDll.dll");   这个就直接返回null ,用绝对路径也是null

2010-07-27 09:43
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
两点:
MAKINGRESOURCE是个宏,只是强制类型转换。它返回NULL.应该是你的ID_Dialog定义为 0?

再者,LoadLibrary成功后,你还应该LoadResource把资源加载进来。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-27 10:02
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 
HINSTANCE hMainInst = GetMoudleHandle(NULL);
HINSTANCE hDllInst = LoadLibrary("ResDll.dll");   //结果这个HINSTANCE和主程序的INST相同
HRSRC   hRC=FindResource(hDllInst, MAKEINTRESOURCE(ID_Dialog), RT_DIALOG);
HGLOBAL hGlb=LoadResource(hDllInst,hRC);

HWND hWnd = CreateDialog(hMainInst ,MAKINGRESOURCE(ID_Dialog), NULL ,DlgProc);

GetLastError 还是1813哦, 在LoadResource之前可以用MAKEINTRESOURCE(ID_Dialog)? ID_Dialog = 101 ,不是0  ,但结果还是NULL

2010-07-27 12:58
快速回复:请教用Dll做资源的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020374 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved