MFC创建资源并加载

6 篇文章 0 订阅

可以将txt等文件内容生成MFC资源,封装到程序中

bool Normal_Distribution::BuildGB3755Resourse(std::vector<wchar_t>& vecGB3755_out)
{/建立资源
	//-1-open
	vecGB3755_out.clear();
	CString strFilePath=_T("D:\\cy\\project\\Garbled\\BuildFontImageLibrary\\GB_3755.txt");
	CFileException ex;
	CFile FileOpen;
	if( !FileOpen.Open( strFilePath,CFile::modeReadWrite,&ex ) )
	{
		TRACE(_T("%s Write  file ERROR!!\n"),strFilePath);
		return false;
	}
	// 
	ULONGLONG nLen	=	FileOpen.GetLength();
	int n=0;
	while(n<nLen) 
	{ 
		wchar_t wchTempt; 
		FileOpen.Read((char *)(&wchTempt), 2); 
		if(wchTempt==65279||wchTempt==12288||wchTempt==32||wchTempt==160||wchTempt==13||wchTempt==10) 
		{
			n +=2;
			continue;
		}//if
		65279:Unicode文件头:,12288:空格,13:回车、160:结尾
		vecGB3755_out.push_back(wchTempt);
		n +=2;
	}//while
	FileOpen.Close();
	//
	-2-save
	CString strFilePathsave=_T("D:\\cy\\project\\Garbled\\GrabledDetection\\GB3755.cy");
	CFile FileSave;
	int nLenn	=	sizeof(wchar_t)*vecGB3755_out.size();
	FileSave.Open( strFilePathsave,CFile::modeCreate|CFile::modeReadWrite,&ex );
	FileSave.Write(&(vecGB3755_out[0]),nLenn);
	FileSave.Close();
	//
	return true;
}

加载资源

bool Normal_Distribution::GetGB3755(std::vector<wchar_t>& vecGB3755_out)
{
	HMODULE hResInst = GetModuleHandle(L"GrabledDetection.dll");  //dll资源
	HRSRC hResSrc = ::FindResource(hResInst, MAKEINTRESOURCE(IDR_GB_37551),_T("GB_3755"));//资源名称和类型
 //	AFX_MANAGE_STATE(AfxGetStaticModuleState());
 //  HINSTANCE hResInst = AfxGetResourceHandle(); 
	//CString strName =_T("IDR_GB_37551");
 //HRSRC hResSrc = ::FindResource(hResInst,strName, _T("GB_3755") );
 if( hResSrc==NULL ) 
	{
		int ierr = GetLastError();  
		return false;
	}
	DWORD dwResSize = ::SizeofResource(hResInst,hResSrc );
	ASSERT(dwResSize ==sizeof(wchar_t)*3755); 
	HGLOBAL hResData = ::LoadResource(hResInst,hResSrc );
	if( hResData==0 ) 
		return false;
	//
	vecGB3755_out.resize(3755);
	LPBYTE pBuf =(LPBYTE)&(vecGB3755_out[0]);
	memcpy( pBuf,::LockResource( hResData ),dwResSize );
	::FreeResource( hResData );
	//
	return true;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值