csdn_SDER 2023-03-28 07:39 采纳率: 100%
浏览 22
已结题

vs c++如何获取资源文件中资源的完整路径

在资源头文件 resource.h 中定义里 bitmap1.bmp 的ID ,是否有办法通过该ID获取到该资源的完整路径

img

  • 写回答

3条回答 默认 最新

  • 五一编程 2023-03-28 08:00
    关注

    唯一方法,只能是把资源文件释放到系统,比较好的方法是释放到系统的临时目录。下面是代码:CHAR pTempFileName[MAX_PATH];// 参数1:资源ID// 参数2:资源名称// 参数3:释放到临时目录的资源名称,也就是文件名BOOL ReleaseResourceToTempPath(int iResId, LPCWSTR lpType, LPCSTR lpFileName){DWORD dwSize;HGLOBAL hGlobal;LPVOID lpBuffer;HRSRC hRes = ::FindResourceW(NULL, MAKEINTRESOURCE(iResId), lpType);if (hRes){hGlobal = ::LoadResource(NULL, hRes);dwSize = ::SizeofResource(NULL, hRes);if (hGlobal && dwSize){lpBuffer = ::LockResource(hGlobal);if (lpBuffer){GetTempPathA(MAX_PATH, pTempFileName);strcat_s(pTempFileName, sizeof(pTempFileName), lpFileName);FILE* fp;fopen_s(&fp, pTempFileName, "wb");if (dwSize == fwrite(lpBuffer, sizeof(char), dwSize, fp)){fclose(fp);return TRUE;}else{fclose(fp);}}}}return FALSE;}调用格式:ReleaseResourceToTempPath(IDR_SKIN_DLL, L"SKIN", "skinpp.dll");ReleaseResourceToTempPath(IDR_SKIN_DOGMAX_SSK, L"SKIN", "dogmax.ssk");由于我工程采用的是UNICODE编码,所以如果你用ASCII的话,有些你地方你需要修改一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值