一个弱智问题,送分!!急!

yjh8047 2003-08-30 12:09:33
dll中怎样使用自身资源?
我在dll中加入资源,然后想就在该dll中直接使用该资源,我用FindResource为什么总是找不到指定的资源,总是返回NULL
我用同样方法在exe文件中使用exe自身资源就行,为什么dll中就不行呢?
我究竟该怎样做呢?
...全文
39 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjh8047 2003-08-31
  • 打赏
  • 举报
回复
我终于知道我错在哪了,我好几处用的句柄都是exe的,GetModuleHandle(NULL)的确是
返回exe的,后来我用GetModuleFileName获得当前模块的文件名其实也是exe的文件名,
然后我又用把它用作GetModuleHandle的参数,最后获得当然还是exe的句柄。

最后还是感谢大家对我问题的关注!
zx_sanjin 2003-08-30
  • 打赏
  • 举报
回复
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
syl5005 2003-08-30
  • 打赏
  • 举报
回复
up
chanet 2003-08-30
  • 打赏
  • 举报
回复

关注...

zx_sanjin 2003-08-30
  • 打赏
  • 举报
回复
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

GetLastError看看错误原因啊
yjh8047 2003-08-30
  • 打赏
  • 举报
回复
用GetModuleFileName我也试了,结果一样,到底怎么办呀,急死我了!!
寻开心 2003-08-30
  • 打赏
  • 举报
回复
GetModuleHandle(NULL);这个不可以,你得到的是EXE的句柄啊。
应该是使用DLL名作为参数来调用
kingeboy 2003-08-30
  • 打赏
  • 举报
回复
up
yjh8047 2003-08-30
  • 打赏
  • 举报
回复
是不是FindResource的问题,可我是自定义资源,如果不用FindResource
该用什么呢?
dzqsuper 2003-08-30
  • 打赏
  • 举报
回复
有看头
yjh8047 2003-08-30
  • 打赏
  • 举报
回复
HGLOBAL hResLoad;
HRSRC hRes;
LPVOID lpResLock;
HMODULE hDll = GetModuleHandle(NULL);
AfxSetResourceHandle(hDll);
hRes = FindResource(hDll, MAKEINTRESOURCE(IDR_MYRES1), "MYRES");
hResLoad = LoadResource(hDll, hRes);
lpResLock = LockResource(hResLoad);
......

这是我的dll项目中的一段代码?这样我试过了,还是不行,调试时hRes总是0。
我仔细检查了,我指定的资源明明在里面。会不会在添加资源是有什么问题,
添加时是不是需要注意什么?有什么额外的操作或是需要添加一些必要的语句?
寻开心 2003-08-30
  • 打赏
  • 举报
回复
应该是调用AfxSetResourceHandle()把自身的handle(DLL创建的时候就有这个数值)传递给它,注意设置之前先保存原来的。
资源处理后,再把原来的设回去。
yjh8047 2003-08-30
  • 打赏
  • 举报
回复
up
yjh8047 2003-08-30
  • 打赏
  • 举报
回复
怎样做才能公用,能不能告诉我具体方法,谢谢!
紫郢剑侠 2003-08-30
  • 打赏
  • 举报
回复
可能你写的DLL中资源不是公用的.
limu810812 2003-08-30
  • 打赏
  • 举报
回复
我也来学习
joinrry 2003-08-30
  • 打赏
  • 举报
回复
1、HMODULE GetModuleHandle(
LPCTSTR lpModuleName // module name
);
填入DLL名称,得到加载的DLL句柄。

2、HRSRC FindResource(
HMODULE hModule, // module handle,DLL句柄
LPCTSTR lpName, // resource name
LPCTSTR lpType // resource type
);

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧