注册 登录
编程论坛 VC++/MFC

FindResource调用失败了

佛前油灯 发布于 2013-11-23 22:35, 3727 次点击
#include "stdafx.h"
#include "resource.h"
#include<windows.h>
#include<stdio.h>
int CreateIco()
{
    HINSTANCE hInst=GetModuleHandle(NULL);
    if(hInst==NULL)
    {
        return 1;
    }
    HRSRC hRes=FindResource(hInst,MAKEINTRESOURCE(IDI_ICON1),RT_ICON);
    if(hRes==NULL)
    {
        return 2;
    }
    DWORD len=SizeofResource(hInst,hRes);
    HGLOBAL hg=LoadResource(hInst,hRes);//载入资源
    if(hg==NULL)
    {
        return 3;
    }
    LPVOID lp=(LPSTR)LockResource(hg);//锁定资源
    if(lp==NULL)
    {
        return 4;
    }
    HANDLE hFile1=CreateFile("icon.nj",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);
    return 0;
}
int main(int argc, char* argv[])
{
    int i=CreateIco();
    printf("%d",i);
    getchar();
    return 0;
}
各位大大们 我的ico文件ID为IDI_ICON1 可是调用时FindResource函数失败 这代码有什么问题吗?
4 回复
#2
yuccn2013-11-24 10:06
应该有错误码的。
你加入GetLastError 查看下错误码是什么
#3
佛前油灯2013-11-24 10:56
回复 2楼 yuccn
错误代码是1814 请问这是哪方面的错
#4
yuccn2013-11-24 20:51
1814 是找不到映像文件中指定的资源名。
你要懂得通过错误码找到对应的错误信息

如果vs2005 ,可以通过菜单  工具-》错误查找  打开那个错误查看框框,输入错误码点击查找就能够看到了
其他版本的 应该也是差不多
#5
佛前油灯2013-11-25 11:53
回复 4楼 yuccn
嗯嗯 多谢了 在编程这方面我刚入手 很多方面经验不足  以后有什么请多指教
1