Windows程序员都来看看吧!打开繁体系统中简体字目录中的文件的问题!

华时纳 2011-11-23 08:43:36
工程描述:VS2005工程,字符集为UNICODE,在简体中文操作系统中编译。
代码描述:其中封装了一个MFC与flash通信的类,该类中有这样一段代码
void LoadMovie(long layer, LPCTSTR url)
{
static BYTE parms[] = VTS_I4 VTS_BSTR ;
InvokeHelper(0x8e, DISPATCH_METHOD, VT_EMPTY, NULL, parms, layer, url);
}

作用是加载flash文件。
现象描述:
1、在简体中文系统中能够正常加载播放flash。
2、在繁体中文系统中,有2个目录,一个目录是名为“本機”(繁体字),另外一个目录名为“欢乐娱乐”(简体字),结果繁体字目录中的flash能够正常加载,而简体字目录中的flash不能正常加载。这二个目录中的文件通过CreateFile函数都能打开。

问题:
1、出现上述现象的原因?
2、如何解决这个问题?
3、求原理!

...全文
176 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序员小迷 2012-02-18
  • 打赏
  • 举报
回复
1、出现上述现象的原因?

繁体系统可能不包含简体文本的编码和字体,导致出现乱码;
但是简体系统一般都包含了繁体系统的编码和字体,所以不会出现乱码;
因为用CreateFile都正常,那么出现打开简体中文目录出错的原因就在,LoadMovie很可能出错了,
它很可能仅仅支持了本地默认系统编码

2、如何解决这个问题?
可以在控制面板的区域语言设置中,设置非Unicode字符使用的语言改为PRC,让其对简体中文和繁体中文
都正确地支持,地区也设置成PRC

3、求原理!
原因在于简体系统和繁体系统的默认编码都不是Unicode,繁体系统对简体系统默认情况下不兼容导致的

LZ参考:
http://blog.sina.com.cn/s/blog_44cb3d3d0100fa4a.html


3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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