我使用s2005编辑MFC程序,我想在exe文件内部加入文件,当执行这个exe文件时,自动复制文件到文件夹。

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:40:33
我使用s2005编辑MFC程序,
我想在exe文件内部加入某个文件,
当执行这个exe文件时,
程序会自动复制exe里的文件到某个文件夹,
请高手指教,谢谢。

步骤:
vc中选择菜单"Insert -> Resource",点击"Custom",输入资源类型(随便起个名,后面会用到,比如MYRES),然后vc会添加一个资源,并自动命名成了IDR_MYRES1,在IDR_MYRES1上面点击右键,file name中填入你要添加的文件的位置(或者把那个文件的内容直接拷贝到右侧的编辑窗口也行).

下面写代码(如果你想让exe运行时代码自动执行,要把下面这段代码放到主类的InitInstance函数中):

HINSTANCE hInst = AfxGetResourceHandle();
HRSRC hRes = FindResource(hInst, MAKEINTRESOURCE(IDR_MYRES1), "MYRES"); //找到资源句柄,这里最后两个参数用到了刚才起的资源类型名和ID
if (!hRes)
{
AfxMessageBox("cannot find resource!");
return;
}
DWORD len = SizeofResource(hInst, hRes);
BYTE* lpRes = (BYTE*)LoadResource(hInst, hRes); //加载到内存
CFile file("out.txt", CFile::modeWrite|CFile::modeCreate); //代开文件,这里的文件名自己修改
file.Write(lpRes, len); //写
MessageBox("copied to:" + file.GetFilePath());
file.Close();