在MingW下编译中文资源文件的解决办法
来源:互联网 发布:mysql事务的原理 编辑:程序博客网 时间:2024/05/17 08:13
最近下了OpenVPN GUI (WIN32)的源码回来阅读,本想试着汉化一下,找到了资源文件并把里面的字符串改成了中文,结果发现编译正常通过,运行时被汉化的窗口无法显示了。
后来在网上看到不少人提到mingw的资源文件编译器windres.exe在编译中文内容的资源文件时会出问题,说可以用wine的wrc工 具来解决,可是刚好又访问不了winehq.org,只好用电驴在瞎拉了一个wrc.exe回来,一看是WATCOM的,也许就是它吧。
试了一通后终于可以用wrc.exe编译工程里的.rc资源文件了,我用的语法是:
wrc -r -zm openvpn-gui-cn.rc -ic:/mingw/include
这是在win32的cmd下试的。
结果试着用编译出来的res文件链接生成执行程序的时候还是失败了,被告知文件格式不可识别。
于是再次使用windres把生成的res文件改成coff格式的res文件。
windres -i openvpn-gui-cn.res -o a.res -O coff
mv a.res openvpn-gui-cn.res
终于链接出汉化后成功运行的执行程序了。
最后就去改Makefile了,大约的修改如下:
...
WRC = wrc
#设定WRC变量为wrc,这里我已经把wrc.exe复制到到c:/mingw/bin下了
...
RES = temp-gui-$(RES_LANG).res
...
temp-gui-$(RES_LANG).res: openvpn-gui-$(RES_LANG).rc openvpn-gui-res.h
$(WRC) -r -zm openvpn-gui-$(RES_LANG).rc -i/c/mingw/include -fo=temp-gui-$(RES_LANG).res
$(WRC) -r -zm openvpn-gui-$(RES_LANG).rc -i/c/mingw/include -fo=temp-gui-$(RES_LANG).res
#由于在msys下进行编译,include目录在/c/mingw/include下,这里生成的是中间的res文件
...
openvpn-gui-$(RES_LANG).res : temp-gui-$(RES_LANG).res
$(WINDRES) -i temp-gui-$(RES_LANG).res -o openvpn-gui-$(RES_LANG).res -O coff
$(WINDRES) -i temp-gui-$(RES_LANG).res -o openvpn-gui-$(RES_LANG).res -O coff
#这里就只进行格式变换了
最后提到一点的是,wrc不认识原来的rc文件里字符串折行写的格式如:
ERR_CONFIG_ALREADY_EXIST "There already exist a config file named '%s'. You cannot " /
"have multiple config files with the same name, even if " /
"they reside in diffrent folders."
"have multiple config files with the same name, even if " /
"they reside in diffrent folders."
要能让wrc编译过去,得把字符串接成一整行:
ERR_CONFIG_ALREADY_EXIST "There already exist a config file named '%s'. You cannot have multiple config files with the same name, even if they reside in diffrent folders."
- 在MingW下编译中文资源文件的解决办法
- 在MingW下编译中文资源文件的解决办法
- Code::Blocks(MinGW)编译资源文件时中文乱码的解决方案及补充
- ACE在MINGW下的编译
- SymbolicC++ 在MinGW下的静态编译
- 使用Mingw在Windows下编译出现的问题以及解决办法
- 在MinGW下编译STLport
- 在MinGW下编译ffmpeg
- 在mingw下编译live555
- 在MinGW下编译ffmpeg
- 在MinGW下编译ffmpeg
- 在mingw下编译ffmpeg
- 在 mingw 下编译 libHaru
- CodeBlocks MinGW Windres 资源文件支持中文
- GCC4.4.0在MinGW下中文显示乱码的问题
- cscope在windows下使用mingw编译的方法
- 转的:在winxp下用mingw编译安装wxwidgets
- 转的:在winxp下用mingw编译安装wxwidgets
- 一些很实用且必用的小脚本代码:
- C#的6种常用集合类大比拼【月儿原创】
- RedHat linux+apache+tomcat+mod_jk 负载均衡安装说明
- 在Tapestry中使用redirect-after-post模式控制表单提交
- 安装nvidia驱动
- 在MingW下编译中文资源文件的解决办法
- 安装星际译王stardict
- 变态指针.cpp
- 湖北02-2005年第四批院校调档分数线对比表
- 《赢在中国》-创业者学历
- 一个80年小子的创业道理,和兄弟们共享
- 一个室外场景渲染程序
- 从则平,破而立
- 遇到“无法浏览网页”教你十招解决疑难杂症