找不到映像文件中指定的资源类型 GetLastError 1813
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到映像文件中指定的资源类型 GetLastError 1813相关的知识,希望对你有一定的参考价值。
CMenu menu, *pSubMenu;
if (!menu.LoadMenu(m_tnd.uID))
//return 0;
int i=::GetLastError();
返回i=1813;原因是找不到映像文件中指定的资源类型。
有没有哪位大侠给说明一下 要怎么解决。跪求!!
首先问:你的这段代码在哪儿,你的加速键资源在哪儿。
如果不在一个模块(PE文件,dll或exe).你使用AfxGetInstanceHandle() 是不行的,必须指定 资源句柄值。
通过:
AfxGetAppModuleState 可得到当前app的管理信息
AfxGetStaticModuleState 得到当前执行的模块的管理信息
从里面可以直接读取模块的资源句柄(其实就是资源在虚拟内存中的地址)。
具体参考MSDN。
有点小气噢,也不给分
追问
问题解决了,你的答案没有什么用,本来要给分关闭问题的,但是你说我小气,那就顺道不给了。。
参考技术A 那把分给我吧, 我也有相同问题,楼上没解决问题……“LIB 环境变量”中指定的搜索路径 *** 无效 --“系统找不到指定的路径。”
本来我的机器装的是VS2005,后来有一个项目要用VC++6.0开发,没办法装上一个,项目完成后就给卸载了,不想原来的VS2005中C#的项目在Build时报以下警告:
警告 1 “LIB 环境变量”中指定的搜索路径“D:Program FilesMicrosoft Visual StudioVC98mfclib”无效 --“系统找不到指定的路径。 ” AnalysisCtrl
原来是在安装VC++6.0时,在环境变量里添加了一个叫“lib”的Administrator用户变量,清除上面提到的路径,重启VS2005 Build 项目,警告消失。具体操作如下:
右键"我的电脑",在弹出的菜单中点击"属性"->"高级"-"环境变量",然后把"Administrator 的用户变量"里的lib变量去掉上面提到的无效路径即可。当然,如果你的lib变量里只包含这个无效路径,直接把lib变量删掉也行。
以上是关于找不到映像文件中指定的资源类型 GetLastError 1813的主要内容,如果未能解决你的问题,请参考以下文章
FindResource函数错误代码:1813-找不到映像文件中指定的资源类型 与LoadResource函数错误代码:1812-指定的映像文件不包含资源区域
点击IE游览器显示找不到映像文件中指定的资源语言标识McShield