VS2008 将资源释放到文件

原创 2015年07月09日 10:08:42

1.得到当前exe的路径

         string strPath;
char  pchr[MAX_PATH] = {0};


GetModuleFileNameA(NULL, pchr,  MAX_PATH);


strPath = pchr ;
strPath.append("\\..\\"); // .exe的上一级文件夹
strPath += "ResDll.dll";
#ifdef _DEBUG
::OutputDebugString(strPath.c_str());
#endif
   if(!::PathFileExists(strPath.c_str())) // 判断文件是否存在
   {
    ReleaseRes(strPath.c_str(),(WORD)IDR_RESLIB_RESDLL,"ResLib");

    if(!::PathFileExists(strPath.c_str()))
    {
    ::AfxMessageBox("Release File Error, Please Close your anti-virus software!");
    return FALSE;
    }
   }

2. 将资源释放到文件

BOOL ReleaseRes(LPCSTR strFileName,WORD wResID,CString strFileType)

{
// 资源大小
DWORD dwWrite=0;


// 创建文件
HANDLE hFile = CreateFile(strFileName, GENERIC_WRITE,FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_TEMPORARY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM,NULL);
if ( hFile == INVALID_HANDLE_VALUE )
{
CString strMsg = "FzNetLicSvr: Release Res Fail ! --";
::OutputDebugString(strMsg + strFileName);


return FALSE;
}


// 查找资源文件中、加载资源到内存、得到资源大小
HRSRC hrsc =  FindResource(NULL, MAKEINTRESOURCE(wResID), strFileType);
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL,  hrsc);


// 写入文件
WriteFile(hFile,hG,dwSize,&dwWrite,NULL);   
CloseHandle( hFile );
return TRUE;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

C#嵌入dll到资源释放的问题

有些程序的时候,可能调用外部的dll,这个时候提供给客户的时候,可能经常不小心丢失这些dll,因此可以考虑将这些dll嵌入到资源中,启动的时候进行释放。对于托管的dll,可以用打包软件合成一个exe(...
  • kikaylee
  • kikaylee
  • 2015年03月22日 11:50
  • 7975

C#嵌入dll到资源释放的问题

http://blog.csdn.net/kikaylee/article/details/44536231  有些程序运行的时候,可能调用外部的dll,用户使用时可能会不小心丢失这...
  • mosangbike
  • mosangbike
  • 2017年01月18日 09:29
  • 1197

VS2008常用快捷键 最全的快捷键

1.强大的渐进式搜索     操作步骤:  1.按Ctrl+I键;  2.输入你要搜索的文本。注意:这时你会看到光标跳至第一个匹配的位置,并高亮显示搜索的文本。  3.再次按下Ctrl+I键,...
  • loveyaqin1990
  • loveyaqin1990
  • 2014年10月24日 19:17
  • 3487

VS2008 C#用资源文件做背景音乐

参考文章:http://blog.csdn.net/stormwy/article/details/7901944 注:我测试的程序的命名空间为:WuBiCodeExecSys C#用...
  • friendan
  • friendan
  • 2012年11月21日 19:50
  • 5555

VS2008打开资源文件时显示说没有安装这个ActiveX控件 "{648A5600-2C6E-101B-82B6-000000000014

手动注册:       大家知道,当我们安装VC++6.0/VB6.0时,如果选择了ACtiveX控件项(自定义安装),MSComm控件就会自动安装在计算机上了,并在系统文件夹下多了3个文件:M...
  • yu12345678900
  • yu12345678900
  • 2014年05月07日 18:03
  • 1039

fltk-1.3.1资源包及编译好的6个lib文件,适用于vs2008,32位系统

  • 2017年02月28日 20:48
  • 6.48MB
  • 下载

VS2008中添加位图资源

开发MFC工程,使用VS2008开发工具,欲添加位图资源,如下所示: (1)首先找到资源视图。资源视图的路径为:视图——资源视图。 (2)然后在任何一个文件夹上右击,选择“添加资源”,出现如下...
  • daofengdeba
  • daofengdeba
  • 2013年10月12日 12:41
  • 1320

VS2008添加GIF资源

1.问题:最近尝试显示GIF动画,从网上找到CPictureEX类,可以显示GIF动画,Demo中使用也很简单。但是,在实际使用时却遇到问题,GIF动态资源显示时变为了静态GIF资源。 2.问题分析...
  • xiashengfu
  • xiashengfu
  • 2013年03月12日 10:15
  • 2698

VS2008资源视图打不开,编译提示 error PRJ0003 : 生成“mt.exe”出错rc.dll,rcdll.dll,mt.dll等问题的解决方法

这个问题其实是因为缺少资源管理的文件rc.exel等文件,我们需要将该文件拷贝到C:\Program Files\Windows SDKs\Windows\6.0A\bin的目录下,正如上面给出的提示...
  • zhangweijiqn
  • zhangweijiqn
  • 2013年11月08日 14:55
  • 1485

vs2008团队资源管理器安装步骤

  • 2010年09月15日 15:48
  • 791B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS2008 将资源释放到文件
举报原因:
原因补充:

(最多只允许输入30个字)