有什么办法能获取到资源里的原始字符串吗?

qurrel 2011-03-12 06:12:59
MFC程序,软件要想同时支持简体和繁体系统,但一直都没采用unicode编译,当然,现在也就遇到了麻烦事,软件在简体下开发,资源也用简体字库;

现在在繁体下显示时,基本上所有的checkbox都出现了乱码;但button, static text都正常;

软件在运行过程里,并不会修改各个空间的信息,想通过这样的方法来调整,请问可行性;

1. 从资源里获取到控件的标题
2. 将标题转换为big5,之后再setwindowtext

现在第一步就过不去,因为这些控件并没有添加到资源字符串库里,也就是说没法用LoadString这个函数,如果要添加的话,工程量也很大,大概100个对话框了;

从长远来说,也许应该用unicode,但现在要做这么大的调整也基本不可行;

求助各位,有什么办法能拿到对话框里的空间的字符描述吗?

请问各位大哥,我的思路是不是有问题,或者能否可行?
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-04-07
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
jixiang1983 2011-03-15
  • 打赏
  • 举报
回复
把整个资源做成一个DLL,要支持多语言就做多个DLL,这样起码不会影响你应用程序代码了,开始的时个有点麻烦,但到用和改的时候就方便多了
qurrel 2011-03-12
  • 打赏
  • 举报
回复
不可以,因为得到的是资源字符串在繁体环境下被改变之后的结果,也就是说相当于是乱码;

其实吧,这个乱码也不能讲全是乱的;

比如,原字符串是:节省资源,在繁体下显示变成了节?资?,就是说有几个字变成了问号,查了二进制内存,确实是0x3f
向立天 2011-03-12
  • 打赏
  • 举报
回复
直接遍历窗口然后GetWindowText可以么
向立天 2011-03-12
  • 打赏
  • 举报
回复
1. 从资源里获取到空间的标题
应该是控件的标题吧
帮你改过来了
qurrel 2011-03-12
  • 打赏
  • 举报
回复
程序稍微有点长,而且_LoadStringW 并没有提到:
对话框ID
对话框上的控件ID

我想这两个信息是必须有的,当然有可能对话框资源遵守一个固定的格式,就是有点累呀,能不能稍微讲解一下?
sunlin7 2011-03-12
  • 打赏
  • 举报
回复
本人写的PE资源结构及读取里面,直接解析pe文件得到资源中的字符串,楼主可以仔细查看_LoadStringW这个函数。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧