vs2013怎么添加自定义资源?谢谢,,,,

vs2013怎么添加自定义资源?谢谢,,,,,第1张

您好,这样的:

BOOL COscillDlg::AssoilInlaidResource(CString sDllName, UINT nResourceID, CString sOutputFileName, CString sExtendName)

{

ASSERT(!sOutputFileName.IsEmpty())

ASSERT(!sExtendName.IsEmpty())

LPTSTR Name = MAKEINTRESOURCE(nResourceID)// IDR_SWF资源名称。

HINSTANCE hImage = NULL

// 界面库句柄

// 载入界面库

if (!sDllName.IsEmpty())

{

hImage = LoadLibrary(sDllName)

if (hImage <(HINSTANCE)HINSTANCE_ERROR)

{

AfxMessageBox(sDllName)

return FALSE

}

}

HRSRC res = FindResource(hImage, Name, sExtendName)// "swf" 资源类型

if (res == NULL)

{

AfxMessageBox(SwitchGetErr(GetLastError()))

return FALSE

}

HGLOBAL gl = LoadResource(hImage, res)

if (gl == NULL) return FALSE

LPVOID lp = LockResource(gl)//返回指向资源内存的地址的指针。

if (sOutputFileName.Find('.') == -1)// 没有找到扩展名

{

::MessageBox(NULL, TEXT("扩展名不对"), TEXT("error"), MB_OK)

return FALSE

}

DeleteFile(sOutputFileName)

// CREATE_ALWAYS为不管文件存不存在都产生新文件。

// ***CreateFile() 默认使用当前.exe文件路径创建文件。

// 创建的是一个隐藏属性的文件 FILE_ATTRIBUTE_HIDDEN

HANDLE fp = CreateFile(sOutputFileName, GENERIC_WRITE, 0, NULL,

CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN, NULL)

DWORD a

//sizeofResource 得到资源文件的大小

if (!WriteFile(fp, lp, SizeofResource(hImage, res), &a, NULL))

return FALSE

CloseHandle(fp)//关闭句柄

FreeResource(gl)//释放内存

if (!sDllName.IsEmpty())

{

FreeLibrary(hImage)

}

return TRUE

}

if (AssoilInlaidResource(_T("ShockwaveFlashControl.dll"), IDR_SWF1, _T("C:\\Temswf.swf"), _T("SWF")))

{

AfxMessageBox(_T("SUS"))

}

else

{

AfxMessageBox(_T("文件不存在"))

}

CString COscillDlg::SwitchGetErr(DWORD n)

{

CString errStr

switch (n)

{

case 1813:

errStr= _T("资源类型不对")

break

default:

break

}

return errStr

}

1.把exe文件添加进资源文件。

2.读取这个资源并输出。

3.验证exe文件是否输出成功。

………………

主要就是第二步难。我按照此处的做法需要添加以下头文件:winbase.h,afx.h,afxdlgs.h方可编译成功,但是运行时连接不成功。

以下函数可以实现从资源文件中读出文件并写到指定的文件, MyType 资源类型 ITEMID 资源ID

至于路径可以用GetTempPath获取临时文件夹

BOOL UseCustomResource()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11659985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存