编号:QA004347 建立日期: 2001年8月7日 最后修改日期:2001年8月7日 所属类别:
bob: 操作系统: win98/windowsme 编程工具: vb6.0 问题: 利用vb6.0向导将一串口通讯程序做成安装程序后,在安装时提示c:\windows\system\msvcrt.dll复制文件时发生访问冲突(此时未打开其他任何程序),按忽略后程序成功安装并能正常运行,此问题由何引起、如何解决? 水平: 中级
回答:
MSVCRT.DLL被很多程序使用,使用VC++设计的程序一般都会使用,包括IE和OFFICE。VB制作的安装程序无法拷贝正在使用的DLL,就会出现你说的问题,微软的Knowledge Base的文章:“Q216368 RB: Access Violation During Application Setup When File in Use”讲的就是这个问题,但它也没有提供什么好方法。我想大概可以采用下面几个方法: 1、别管它,安装时选择忽略就行了,不会有什么问题。当然,对用户来说有点不方便。 2、使用Install Shield或Wise等工具,这些工具都可以正确处理拷贝正在使用的DLL。参考:QA004334 "制作安装程序时,如何拷贝跟系统相关的文件"、QA002267 "安装程序如何复制正在使用的文件"。 3、修改setup1.vbp工程。VB6安装程序的源程序在VB98\Wizard\PDWizard\Setup1目录下可以找到。你可以在VB中打开这个工程,然后在其中添加处理拷贝正在使用的DLL的功能(QA001027 "能否解锁被Windows锁定的文件")。编译后使用你的Setup1.exe替换系统的Setup1.exe就可以了。这个方法比较麻烦,看你的水平如何了。
此问题由李海回答。 把这个问题推荐给朋友 您的意见类别 更好的答案 希望得到进一步解释 我有有关代码可以提供给网友 链接错误 文字错误 其他 您的名字 您的电子邮件 您的建议(请尽可能详细)