关于vb运行时错误 70 拒绝的权限

来源:百度知道 编辑:UC知道 时间:2024/05/15 00:35:57
我用VB编了个软件但是发现复制后的文件不能运行
运行的话就出现 运行时错误 70 拒绝的权限
但是原文件还是可以运行的
怎么回事???

因为复制文件与自身文件重名!

例如:
FileCopy App.Path & "\" & App.EXEName & ".exe", "c:\test.exe"
编译后保存到:
C:\test.exe

这时候你运行C:\test.exe就会出现这个错误
解决方法:把复制品路径或者文件名改一下就可以了

告诉你不能运行的原因吧.这有助于你以后工作.

VB做的程序,所有编译出来的EXE文件需要的都是动态链接库.而C编的程序可以是静态链接库.所以,C编的程序生成EXE文件可以只复制一个EXE文件就能运行.而VB程序必须把它生成的EXE文件和编译时引用的类库和控件都复制到要运行的机器上才能运行.

动态链接导致了VB生成EXE时不能把运行时需要的类库和控件一起生成一个EXE文件,必须运行时,在注册表找到所需控件的位置进行加载.面静态的则可以把所需类库一起打包到EXE文件中

在使用动态链接库与使用静态库之间有一个折衷。如果你使用动态链接库,则你的所有用户程序都共享相同的代码副本。如果你使用静态库,则你的所有用户程序都需要复制相同的代码。例如,在USER32.DLL中,只有Windows API wsprintf函数的一个副本,但是试一试,想像在你所有静态链接的C程序中,在硬盘上将会有C printf函数二进制代码的多少个副本。如果你的用户具有大量使用相同的语言开发的程序,那么使用DLL将会得到一定的补偿。但是,一个用户只有一个用户该种语言开发的小程序,则该用户最终将会在支持DLL中有大量浪费的代码。在有些情况下,你确实想要一个单个的可执行文件,即使它很大并且可能是冗余的。

要想知道你的程序运行时要依赖哪些类库.微软的的Microsoft Visual Studio Tools下有一个Depands程序,它能帮你分析你的程序需要哪些类库.连同分析出的文件一起拷贝到目标机器,并把类库注册就行了.

1、试图用Output或Append方式打开写保护的文件。
2、试图写一个被其他程序