目录
版权
本文为原创, 遵循 CC 4.0 BY-SA 版权协议, 转载需注明出处: https://blog.youkuaiyun.com/big_cheng/article/details/127183433.
Original
最近在学习Charles Petzold 的《Programming Windows》第五版. 第10 章"Menus and Other Resources" 开始用到资源文件(用来定义界面布局元素, 图标, 国际化字符串等). 但书中是Visual Studio, 而本地是mingw-w64 + Eclipse CDT. 经摸索可以如下使用资源文件(用10-1 ICONDEMO 程序做试验).
test.rc 资源文件
在ICONDEMO.C 同一目录放置编辑好的ICONDEMO.ICO 图标文件; 再创建一个test.rc 资源文件:
desk1 ICON "ICONDEMO.ICO"
在C 中用字符串"desk1" 引用该资源:
......
wndclass.hIcon = LoadIcon(hInstance, TEXT("desk1"));
......
hIcon = LoadIcon(hInstance, TEXT("desk1"));
编译资源文件
在该目录:
C:\Users\ASUS\eclipse-workspace\HelloWorld>where windres
C:\msys64\mingw64\bin\windres.exe
C:\Users\ASUS\eclipse-workspace\HelloWorld>windres -i test.rc -o test.o -v --use-temp-file
生成test.o 文件.
注意: 一定要使用"--use-temp-file" 选项, 否则(默认用popen/管道) 总是会报错:
C:\Users\ASUS\eclipse-workspace\HelloWorld>windres -i test.rc -o test.o
windres: test.rc:2: syntax error
test.rc:1: fatal error: when writing output to : Invalid argument
1 | desk1 ICON "ICONDEMO.ICO"
|
compilation terminated.
windres: preprocessing failed.
编译程序
进入"Debug" 子目录编译:
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o ICONDEMO.o "..\\ICONDEMO.C"
g++ -mwindows -o HelloWorld.exe ICONDEMO.o "..\\test.o"

本文介绍如何在mingw-w64与Eclipse CDT环境下使用资源文件(.rc)及WindRes工具进行编译,包括资源文件的创建、编译过程中需要注意的问题以及常见错误的解决方法。
最低0.47元/天 解锁文章
598

被折叠的 条评论
为什么被折叠?



