MFC中使用自定义资源(bin资源)
参考: http://www.cnblogs.com/gakusei/articles/1352922.html
在MFC的资源视图中添加资源如下:
点击ok后会出现上图红色框中自己添加的类型。
HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_BIN1), L"bin");
if(hRes == NULL) {
DWORD res = GetLastError();
EndDialog(0);
return 2;
}
DWORD len = SizeofResource(NULL, hRes);
HGLOBAL hg = LoadResource(NULL, hRes);//载入资源
if(hg == NULL) {
return 3;
}
LPVOID lp = (LPSTR)LockResource(hg);//锁定资源
if(lp == NULL) {
return 4;
}
HANDLE hFile1 = CreateFile(L"C://a.bin", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwWrite = 0;
WriteFile(hFile1, lp, len, &dwWrite, NULL);
CloseHandle(hFile1);
FreeResource(hg);
在本地文件目录下添加和修改res\bin1.bin,直接使用上面代码,你会发现hRes为NULL。
如果在编译器中修改IDR_BIN1,你会发现hRes不为NULL了,但在这里修改,很不方便,容易出错。
分析发现,只需要在.rc 文件中适当位置添加部分代码,就可以在外部环境下替换bin1.bin了
如下:
//
// BIN
//
IDR_BIN1 BIN "res\\bin1.bin"
#endif // Chinese (Simplified, PRC) resources
/////////////////////////////////////////////////////////////////////////////
---------------------
作者:fevershen
来源:****
原文:https://blog.****.net/fevershen/article/details/71479973
版权声明:本文为博主原创文章,转载请附上博文链接!