首页
社区
课程
招聘
为什么hResource返回的句柄是NULL
发表于: 2005-11-17 18:44 5445

为什么hResource返回的句柄是NULL

2005-11-17 18:44
5445
由于hResource返回的值是NULL?
导致后面的程序出现错误

hResource = LoadResource (
            hInst,
            FindResource(hInst, TEXT ("AnnabelLee"), TEXT("TEXT"))
            );

资源文件如下:

STRINGTABLE DISCARDABLE
BEGIN
    IDS_APPNAME      """PoePoem"""
    IDS_CAPTION      """""""Annabel Lee""""by Edgar Allan Poe"""
    IDS_ERRMSG       """this Program need Windows XP"""
END  

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 214
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
函数原型; HGLOSAL LoadResouare(HMODULE hModule,HRSRC hReslnfo);

函数功能:该函数装载指定资源到全局存储器。

参数:

hModule:处理包合资源的可执行文件的模块句柄。若hModule为NULL,系统从当前过程中的模块中装载资源。

hReslnfo:将被装载资源的句柄。它必须由函数FirtdResource或FindResourceEx创建。

返回值:如果函数运行成功,返回值是相关资源的数据的句柄。如果函数运行失败,返回值为NULL。若想获得更多的错误信息,请调用GetLastError函数。

注意:LoadResource的返回类型是向后兼容的HGLOBAL型,而不是因为函数返回一个全局存储块句柄。不要传递这个句柄给函数GlobalLock或GlobalFree。为了得到更多资源数据信息,请调用LockResource函数。

当使用完资源后,必须通过调用函数以释放加速器表、位图、光标、图标以及菜单所占的内存资源:加速器表:DestroyAcceleratorTable;位图:DeleteObject;光标:DestroyCursor;图标:Destroylcon;菜单:DestroyMenu。

当过程创建终止时,系统将自动删除这些资源。但是调用相关函数也可以保留内存减少过程的工作设置所占空间。
2005-11-18 07:31
0
雪    币: 1223
活跃值: (469)
能力值: (RANK:460 )
在线值:
发帖
回帖
粉丝
3
用GetLastError()检查一下
2005-11-18 09:33
0
游客
登录 | 注册 方可回帖
返回
//