搞了个系统的程序,是基于VB开发的,生成那个.exe文件之后,为什么不在VB的环境下不能正常运行?
6个回答
展开全部
要想在其他电脑上运行VB编译的EXE文件,有两种情况需要区别对待:
一、直接运行。如果你编写的程序没有“引用”或通过“部件”加入其他控件,而直接使用工具箱内默认的控件(如:textbox,listbox,Picturebox等),那么,你编译的EXE文件就可以在安装win98及以上版本的电脑上直接运行。
二、安装运行。除第一点情况以外,你编译的EXE文件都必须通过打包的形式形成安装包,然后在其他的电脑上先进行安装,最后才能正确的运行。
打包的方法如下:
1、编译成EXE文件;
2、通过VB自带的“Package & Deployment 向导”对该工程进行打包,最后生成安装包setup.exe setup.lst等关键文件。这时,你只有把它们复制到其他电脑上并进行安装,即可正确使用该软件了
一、直接运行。如果你编写的程序没有“引用”或通过“部件”加入其他控件,而直接使用工具箱内默认的控件(如:textbox,listbox,Picturebox等),那么,你编译的EXE文件就可以在安装win98及以上版本的电脑上直接运行。
二、安装运行。除第一点情况以外,你编译的EXE文件都必须通过打包的形式形成安装包,然后在其他的电脑上先进行安装,最后才能正确的运行。
打包的方法如下:
1、编译成EXE文件;
2、通过VB自带的“Package & Deployment 向导”对该工程进行打包,最后生成安装包setup.exe setup.lst等关键文件。这时,你只有把它们复制到其他电脑上并进行安装,即可正确使用该软件了
展开全部
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Function IsRunUnderVB6() As Boolean
Dim S As String, Length
Length = 256
S = String(Length, 0)
Call GetModuleFileName(0, S, Length)
S = Left(S, InStr(S, Chr(0)) - 1)
IsRunUnderVB6 = UCase(Right(S, 7)) = "VB6.EXE"
End Function
Private Sub Form_Load()
If IsRunUnderVB6 = False Then MsgBox "错误": Unload Me
End Sub
在vb环境下运行和生成exe后运行之间看看有没有区别
Function IsRunUnderVB6() As Boolean
Dim S As String, Length
Length = 256
S = String(Length, 0)
Call GetModuleFileName(0, S, Length)
S = Left(S, InStr(S, Chr(0)) - 1)
IsRunUnderVB6 = UCase(Right(S, 7)) = "VB6.EXE"
End Function
Private Sub Form_Load()
If IsRunUnderVB6 = False Then MsgBox "错误": Unload Me
End Sub
在vb环境下运行和生成exe后运行之间看看有没有区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该调用了其他的控件吧(原来不能在工具栏找到的)。生成的exe文件可是要调用这个控件的ocx文件的。用package程序包起来,生成安装包。就可以在其他机子上运行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将你的程序打包安装就可以了。可以用VB自带的打包安装工具,也可以用其他打包安装工具。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要是你打包的时候可能没有吧你的相关组件打包进去,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是调用了其他的控件(在工程属性里面添加的),简单点的话,将原始的OCX或DLL文件放到你生成的EXE文件同一目录或放到C:\WINDOWS\SYSTEM32目录下即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询