2个关于vb的问题(运行时错误)求教,请热心人赐教

poor_ak 2003-09-21 10:36:20
我写了一个软件,其中用到了对ini文件的读写。
程序流程大约如下:
①开始运行-〉用GetCurrentDirectoryA获取当前目录-〉然后用dir判断ini文件是否存在

分支语句:
②dir判断文件是否存在-〉存在则转入读取ini的模块
③dir判断文件是否存在-〉若不存在或ini文件内容错误则转入恢复ini的模块

④读取ini的模块-〉用GetPrivateProfileString读取ini文件的内容-〉读取成功后转入程序

⑤恢复ini的模块-〉用fso对象的CreateTextFile、writeLine来恢复文件-〉恢复后转到程序开头,重新加载


我的程序出现了几个问题:

1.用Setup Factory 生成一个setup文件。可以正常安装。安装好后运行我的程序,发现程序转入我程序中的"ini文件不存在"这个分支(见上面③)。进入恢复ini的模块后(见上面的⑤)时出错,系统提示:运行时错误‘70’:拒绝的权限。

我的疑问及处理:我的操作系统是win2k+sp1-4补丁,fat32,用Administrator登陆。为什么会出现这个提示?更为奇怪的是,我把该可执行文件和ini文件复制到我在该盘下任意新建的一个文件夹内运行该程序,却能正常运行。对此现象非常的疑惑。

2.在我机器上编译好的两个可执行文件(分别各在xp和win2k pro下各编译一个)。然后把可执行文件和相应的ini文件(未用setup打包)直接发给网友进行测试。该网友用administrator登陆,win2k pro系统,fat32,装有vb6运行库。运行的时候系统提示 "运行时错误:53 文件未找到"。我根据我写的程序流程(见上面①-⑤),我估计是在④用GetPrivateProfileString读取ini文件的内容的时候出现的问题。

我的疑问:为什么会出现这个奇怪的问题?第二个问题在另外一个网友机器上运行也有同样的提示,该网友系统环境为winXP 系统盘ntfs,其余盘fat32,用一个具有管理员权限的id登陆系统。

探讨,我在使用fso对象的CreateTextFile函数是这样使用的Set FileObject = Fso.CreateTextFile(mstrFilePath, True)不知道是不是这里出了问题?因为我查阅msdn上,对true这个参数的解释是:TRUE表示覆盖。

以上两个问题,还盼热心的朋友赐教,谢谢!



...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
poor_ak 2003-09-28
  • 打赏
  • 举报
回复
不用GetCurrentDirectoryA后,在其中一个人的机器上已经能正常运行了
poor_ak 2003-09-22
  • 打赏
  • 举报
回复
1.我也怀疑是不是和这个api有关系,正准备把所有用到GetCurrentDirectoryA的地方换成app.path。
2.谢谢,我以前不知道这个函数writeprivateprofilestring还能恢复,呵呵

fso我最后close了
allangoing 2003-09-21
  • 打赏
  • 举报
回复
我有几个建议,不知道跟你的问题是否有关:
1.为什么不用app.path而去找麻烦的API呢?
2.为什么不用writeprivateprofilestring来恢复ini文件呢?又方便,又安全

另外,filestream好像些文件最后要flush吧,在vb里好像是close方法。

7,784

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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