我的MFC程序为什么在英文版的XP下不能打开它对应的文件?

fish_kun 2008-05-27 02:17:01
我做了一个基于MFC文档/视图结构的软件,并且指定了它对应的文件类型(扩展名)。

现在遇到一个很麻烦的问题,我将一些此软件对应的文档刻录到光盘上,并用这个软件打开,在任何版本的XP,2000都没有任何问题,唯独在英文版的XP下不能打开光盘上的文件,并弹出“Argument error”的对话框。


问各位大虾,何解啊?
...全文
121 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fish_kun 2008-05-29
  • 打赏
  • 举报
回复
好不容易查找到了一片文档:
http://support.microsoft.com/kb/842748

FIX: 对于 Visual Studio NET 2003 中有效数据的 COleStreamFile 对象: GetStatus 函数返回无效

但还不是很清楚。
palmax 2008-05-29
  • 打赏
  • 举报
回复
你打开文件前,把文件路径用messagebox看看
fish_kun 2008-05-29
  • 打赏
  • 举报
回复
查找到了一篇文章:

http://support.microsoft.com/kb/842748

FIX: 对于 Visual Studio NET 2003 中有效数据的 COleStreamFile 对象: GetStatus 函数返回无效

好像是关于这个问题的。

不知道各位有没有遇到过类似的。
zgl7903 2008-05-28
  • 打赏
  • 举报
回复
把资源中的所有东西的语言类型修改为English
lxt2004 2008-05-28
  • 打赏
  • 举报
回复
在中文系统下开发英文版即使不使用中文也会有问题
到英文版的系统重新编译
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
我的这个软件本来就是英文版本的,在代码,资源,包括代码中的注释,没有一个中文字。
至于文档的名字,压根就没用中文,包括文档里面的内容(此文档是xml格式的)。
cnzdgs 2008-05-28
  • 打赏
  • 举报
回复
你调试看看执行到哪里出错。
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
我开发的就是英文版的程序啊,没有用任何中文,包括注释,而且文档的名字,里面的内容没有一处用到了中文。
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
对不起各位,我发现这个问题是只在英文版中出现,而跟XP是否是SP1没有关系,而且此英文版如果装了任何一种语言支持,都不会出现这个问题了,我有搜索到好像这需要安装VS2003的SP1就可以解决这个问题,但我还不是很清楚。
cnzdgs 2008-05-28
  • 打赏
  • 举报
回复
你始终没有说出是执行哪行代码引起的错误,所以没法判断具体的原因。从“Argument error”来看,可能是程序中调用的某个函数在SP1和没有SP1的环境下参数的用法有所不同。
Chenbitian 2008-05-28
  • 打赏
  • 举报
回复
我遇到过这样的一个问题,我做的程序要求删除它自己目录下生成的几个数字命名的文件夹,结果在简体xp、英文xp、简体2003、vista等系统下都测试通过,只有在繁体xp下到时候出现有时候删除不掉的情况,没有目录问题。因为是时不时出现的,所以到现在还没有想到是什么原因造成的。
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
想问一下大家,这是XP的一个bug吗?有没有官方的说明啊?
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
最新发现出现问题的英文版XP没有安装SP补丁,如果装了SP1就没有这个问题了。
fish_kun 2008-05-28
  • 打赏
  • 举报
回复
对了,我忘了说了,这个软件是个多语言版本,有法语和西班牙语,但是我是用的unicode的编码,而且它们是作为dll存在的,如果我只使用英文,这两个dll不会被调用,而英文的资源语言类型全是English,所以问下楼上的两位:
1,为什么需要在英文版系统下重新编译。
2,为什么需要将所有东西的语言类型修改为English.

对不起,不好意思!!

我还忘了说的就是我的软件是在英文版(其中装了中文语言支持,并且区域设置为中国)下编译的,在此环境下打开光盘中的文件是没问题的。
但在单纯的英文版(没有装任何多语言支持)下会打不开光盘中的文件。
my_girlf 2008-05-27
  • 打赏
  • 举报
回复
可能是程序中字符集的问题
打开文件的时候系统会进行转换,光盘是只读的,所以转换不成功则打开失败,你拷到硬盘上,硬盘上的文件默认不是只读的,系统会转换成功,则可以打开。可以测试一下,你把拷到硬盘上的文件的属性设为只读,打开试试。

举一个例子,比如在繁体的系统下解压文件名为简体的压缩文件,是不会成功的,而把文件名改成英文或繁体就可以正常解压。
scq2099yt 2008-05-27
  • 打赏
  • 举报
回复
中文跟英文操作系统的差别是什么?
所以还是有可能是字符集的问题,可能你的程序中用到了中文。
fish_kun 2008-05-27
  • 打赏
  • 举报
回复
我只在英文版的XP下出现这个问题。
在英文版的XP下不能打开光盘中的文件,但如果将光盘中的文件拷贝到硬盘上就可以打开。
而在中文版的XP下,光盘中的文件能够打开。
所以和文件是否只读没有关系

和中文名称问题也没有关系
我光盘上的文档没有包含任何中文,另外文档的编码是unicode。
aa3000 2008-05-27
  • 打赏
  • 举报
回复
中文名称问题?
cnzdgs 2008-05-27
  • 打赏
  • 举报
回复
调试看看哪行代码出的问题,相关参数是怎么给的。光盘与硬盘的差别主要是光盘上的文件都是只读的。

2,640

社区成员

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

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