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

我用VB编了个软件但是发现复制后的文件不能运行
运行的话就出现 运行时错误 70 拒绝的权限
但是原文件还是可以运行的
怎么回事???

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

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个回答  推荐于2016-08-28
因为复制文件与自身文件重名!

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

这时候你运行C:\test.exe就会出现这个错误
解决方法:把复制品路径或者文件名改一下就可以了本回答被提问者采纳
第2个回答  2007-08-02
1、试图用Output或Append方式打开写保护的文件。
2、试图写一个被其他程序打开的文件。
3、试图写注册表,但没有相应的权限。
第3个回答  2007-08-02
你是缺少了关联文件.先把复制后的文件改名成原来的文件试试.
你是复制到别的机子上还是哪里?
第4个回答  2007-08-02
你可以发过来我看看吗?我把正确的半小时之内给你发回去

我的油箱忘了告诉你,zhang8588@163.com
相似回答