FindResouce,LockResouce的用法?

timeman 2001-01-18 05:25:00
为什么我在程序中使用了这两个函数后提示我某某处内存不能读?
是不是需要释放?我用了FreeResouce也不行,不知那位老兄知道原应。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
timeman 2001-01-19
  • 打赏
  • 举报
回复
代码如下:
hMoudle = LoadLibraryEx(SourFileName, 0&,DONT_RESOLVE_DLL_REFERENCES);
hNum = hNum + 1;
lName = "#" & CStr(hNum);
lRes = FindResource(hMoudle, lName, RT_ICON);
if (lRes <> 0 )
{
lSize = SizeofResource(hMoudle, lRes);
lGlobal = LoadResource(hMoudle, lRes) ;
LG1 = LockResource(lGlobal);
retValue=CopyMemory(xt.astr(0), LG1, Len(xt));
If FreeResource(lGlobal) .........
}
FreeLibrary (hMoudle)
也不是每次都报错,对有的文件可通过,有的死活不行,希望高手指教。
谢谢了。
timeman 2001-01-19
  • 打赏
  • 举报
回复
上面程序大家将就着看吧,用Vb转的,漏洞百出,见笑了。
不过不知函数调用有没有错误,请大家帮帮忙。
rockswang 2001-01-19
  • 打赏
  • 举报
回复
原来C里可以用<>表示不等于吗?!
我试……咦?two errors
无我无人 2001-01-18
  • 打赏
  • 举报
回复
给你个例子吧,你看看是不是忘了LoadResource。如果还不行,你把代码贴出来。

// return data block size in bytes
DWORD GetRCDataPtr(
HINSTANCE hInst,
WORD wResID, // Resource ID
LPVOID* lppvBuffer)
{
HRSRC hResInfo;
HGLOBAL hResData;
DWORD dwSize;

ASSERT(lppvBuffer);

hResInfo = FindResource(hInst, MAKEINTRESOURCE(wResID), RT_RCDATA);
ASSERT(hResInfo); // Resource should exist
if (!hResInfo) { goto FAILED; }

dwSize = SizeofResource(hInst, hResInfo);
ASSERT(dwSize); // Resource should have data

// load resource
hResData = LoadResource(hInst, hResInfo);
*lppvBuffer = LockResource(hResData);

return dwSize;

FAILED:
*lppvBuffer = NULL;
return 0;
}
Robert2001 2001-01-18
  • 打赏
  • 举报
回复
跟一下! 看看你的指针指向的是那里。
sun2000 2001-01-18
  • 打赏
  • 举报
回复
HMODULE hModule是否用错了,
本进程可以用NULL

16,548

社区成员

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

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

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