2个关于vb的问题(运行时错误)求教,请热心人赐教
我写了一个软件,其中用到了对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表示覆盖。
以上两个问题,还盼热心的朋友赐教,谢谢!