C语言中如何装入资源文件? 用C++装入资源文件,可以做到。 现在我的其他程序必须在C模式下编译。
在C++下,加载资源程序如下,运行正常//查找资源文件中、加载资源到内存、得到资源大小HRSRChrsc=FindResource(NULL,MAKEINTRESOURC...
在C++ 下,加载资源程序如下,运行正常
// 查找资源文件中、加载资源到内存、得到资源大小
HRSRC hrsc = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), “EXE”);
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL, hrsc);
但在纯C下应该如何加载文件呢?
经过试验,在“.cpp”下编译以上3句是正确的,但在纯C下,即在扩展名为“.c”的文件里,运行是错误的。
如何“.c”里装载资源呢?请赐教! 展开
// 查找资源文件中、加载资源到内存、得到资源大小
HRSRC hrsc = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), “EXE”);
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL, hrsc);
但在纯C下应该如何加载文件呢?
经过试验,在“.cpp”下编译以上3句是正确的,但在纯C下,即在扩展名为“.c”的文件里,运行是错误的。
如何“.c”里装载资源呢?请赐教! 展开
2个回答
展开全部
编译不通过提示的是什么错误? 你只简单的说运行错误,会认为你已经编译通过了,看到后面才知道你是编译不通过
取消 预编译头 呢?
取消 预编译头 呢?
追问
在纯C下,提示为
error C2275: 'HRSRC' : illegal use of this type as an expression
error C2275: 'HGLOBAL' : illegal use of this type as an expression
error C2275: 'DWORD' : illegal use of this type as an expression
如果没有用纯C装过资源文件,一般来说,较难搞出来。
如果搞过,应该不难。
追答
#include "windows.h"
#include "Resource.h"
void LoadResourceEx()
{
HRSRC hrsc = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), “EXE”);
HGLOBAL hG = LoadResource(NULL, hrsc);
DWORD dwSize = SizeofResource( NULL, hrsc);
}
取消预编译头,你试下可以编译通过没;
编译通过之后,如果C++代码里面调用这个函数,需要在原型那里做类似这样的声明
#ifdef __cplusplus
extern "C"{
#endif
void LoadResourceEx();
#ifdef __cplusplus
}
#endif
展开全部
MS的C/C++函数库可不分C还是C++。你是忘记包含头文件了吧。
追问
看来你不太懂C、C++ 的 区分。VC ++ 编译器 是分两种情况编译的,一种是 纯 C编译,扩展名为.c;一种是 按C++编译,扩展名为.cpp。
我说得很清楚,在.cpp的文件中编译通过,但在将扩展名改为.c时则通不过。也就是说,要在.c中也完成 资源文件转载内存的功能,需要 换一批函数,这一批函数纯C中能用的函数,我手头没有资料。
追答
编译不通过的错误消息是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询