首页
社区
课程
招聘
[求助][求助]DLL中释放资源失败?看代码
发表于: 2011-3-21 13:18 5363

[求助][求助]DLL中释放资源失败?看代码

2011-3-21 13:18
5363
bool FreeExeResource(char StPath[200])
{  
  DWORD dwWritten = 0;
  HMODULE hInstance = ::GetModuleHandle(NULL);  

  HRSRC hSvcExecutableRes = ::FindResource(hInstance, MAKEINTRESOURCE(103), "BIN" );
  HGLOBAL hSvcExecutable = ::LoadResource(hInstance, hSvcExecutableRes);
  LPVOID pSvcExecutable = ::LockResource(hSvcExecutable);
  if(pSvcExecutable == NULL)
    return FALSE;

  DWORD dwSvcExecutableSize = ::SizeofResource(hInstance, hSvcExecutableRes);

  HANDLE hFileSvcExecutable = CreateFile(StPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
  FILE_ATTRIBUTE_NORMAL,
  NULL);
  if(hFileSvcExecutable == INVALID_HANDLE_VALUE)
    return FALSE;
  WriteFile(hFileSvcExecutable, pSvcExecutable, dwSvcExecutableSize, &dwWritten, NULL);
  CloseHandle(hFileSvcExecutable);
  return dwWritten == dwSvcExecutableSize;
}
以上代码在dll中释放不了资源。。 求救啊

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 445
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
HMODULE hInstance = ::GetModuleHandle(NULL);  
获取的是主程序的handle

FindResource在主程序中找肯定找不到了!
HMODULE hInstance = ::GetModuleHandle(“dll名”);
2011-3-21 15:29
0
雪    币: 8753
活跃值: (5215)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
Rebuild All...
没有任何问题。
2011-3-21 23:36
0
游客
登录 | 注册 方可回帖
返回
//