MFC中使用自定义资源(bin资源)

参考: http://www.cnblogs.com/gakusei/articles/1352922.html

在MFC的资源视图中添加资源如下:

MFC中使用自定义资源(bin资源)

MFC中使用自定义资源(bin资源)

 

 

点击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 
版权声明:本文为博主原创文章,转载请附上博文链接!