| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:普通Application中添加资源出错
取消只看楼主 加入收藏
xinworld123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-4-23
收藏
 问题点数:0 回复次数:1 
普通Application中添加资源出错
我尝试用一个Application应用程序来释放一个其他文件,思路这样的:主释放文件是A,被释放文件是B;在编写A时,把完整的B文件作为资源添加到A的资源中,也就是在编写环境中插入资源,但是执行结果总是资源的句柄为NULL,我用MFC就能实现,不知道为什么?
代码如下:
#include "Windows.h"
#include "resource.h"

BOOL ReleaseRes(char * strFileName,char *lpName,LPCTSTR lpType,HINSTANCE hInstance);

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
   if(FALSE==ReleaseRes("d.dll","testDll.dll","dll",hInstance))
   {
       MessageBox(0,"释放失败","提示",MB_OK);
       return 0;
   }

}
BOOL ReleaseRes(char * strFileName,char *lpName,LPCTSTR lpType,HINSTANCE hInstance)   
{   
    // 资源大小   
    DWORD   dwWrite=0;         
  
    // 创建文件   
    HANDLE  hFile = CreateFile(strFileName, GENERIC_WRITE,FILE_SHARE_WRITE,NULL,   
                                CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);   
    if ( hFile == INVALID_HANDLE_VALUE )   
    {   
        return FALSE;   
    }   
  
    // 查找资源文件中、加载资源到内存、得到资源大小
   
   HRSRC   hrsc=::FindResource(hInstance, lpName, lpType);

    if(hrsc==NULL)
        MessageBox(0,"资源句柄无效","句柄",MB_OK);这里总是能弹出
    HGLOBAL hG = LoadResource(NULL,hrsc);   
    DWORD   dwSize = SizeofResource( NULL,hrsc);   
  
    // 写入文件   
    WriteFile(hFile,hG,dwSize,&dwWrite,NULL);      
    CloseHandle( hFile );   
    return TRUE;   
}  
请高手指点,呵呵
搜索更多相关主题的帖子: 其他 应用程序 current include 
2012-04-23 22:27
xinworld123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-4-23
收藏
得分:0 
怎么一个人恢复都没有啊,,,,,,,,,,,,
2012-04-24 19:37
快速回复:普通Application中添加资源出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016027 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved