热情软件屋

 

利用vb向导做成安装程序后,在安装时提示msvcrt.dll复制文件时发生访问冲突


编号: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就可以了。这个方法比较麻烦,看你的水平如何了。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio