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”里装载资源呢?请赐教!
展开
 我来答
cmingguo
2012-07-20 · TA获得超过119个赞
知道答主
回答量:123
采纳率:0%
帮助的人:118万
展开全部
编译不通过提示的是什么错误? 你只简单的说运行错误,会认为你已经编译通过了,看到后面才知道你是编译不通过
取消 预编译头 呢?
追问
在纯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
beddy1
2012-07-20 · TA获得超过1988个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2180万
展开全部
MS的C/C++函数库可不分C还是C++。你是忘记包含头文件了吧。
追问
看来你不太懂C、C++ 的 区分。VC ++ 编译器 是分两种情况编译的,一种是 纯 C编译,扩展名为.c;一种是 按C++编译,扩展名为.cpp。

我说得很清楚,在.cpp的文件中编译通过,但在将扩展名改为.c时则通不过。也就是说,要在.c中也完成 资源文件转载内存的功能,需要 换一批函数,这一批函数纯C中能用的函数,我手头没有资料。
追答
编译不通过的错误消息是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式