先用cd命令转到vb6.0的安装目录,然后输入vb6/makevbp文件全路径(/make可简写为/m,如果文件名含空格,文件名要加引号)就编译成exe,exe文件默认与vbp文件同目录同名(扩展名不同),如果要修改编译生成的默认exe文件名,先用记事本打开vbp文件,加一行(不能加在[MSTransactionServer]这行的后面)ExeName32=新名称.exe再编译。
❷ VB程序怎么编译
你说的是不是编译成Exe文件 如果是 点击菜单上文件里的生成exe文件即可
❸ VB如何编译
VB编译方法:
编码完成后,点击文件——生成工程,即可。
VB是解释性的编程语言,安装的VB在写好代码了,以后 按F5也会自动处理的。
Visual Basic是一种由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
❹ VB程序设计问题,提示为编译错误:必选参数。
Sub yx(ByVal zf$, ByRef count%)
过程定义中有两个参数,而你在调用的时候只传递了一个参数Label3.Caption = yx(Text1.Text)
Text1.Text是一个参数
❺ VB程序设计编译
Dim
mark(10)
As
Integer
Private
Sub
Command1_Click()
Randomize
For
i
=
1
To
10
mark(i)
=
Int(Rnd
*
101
-
400)
Text1.Text
=
Text1.Text
&
"
"
&
Str(mark(i))
Next
i
End
Sub
Public
Function
ProcMin(ByRef
markz()
As
Integer)
As
Integer
Dim
Min
As
Integer
Min
=
markz(1)
For
i
=
1
To
10
If
markz(i)
<
Min
Then
Min
=
markz(i)
End
If
Next
i
ProcMin
=
Min
End
Function
Private
Sub
Command2_Click()
Text2.Text
=
Str(ProcMin(mark))
End
Sub
首先你使用mark数组需要使用全局变量,其次你定义传递参数的子程序应为函数程序,用返回值来获取结果。
❻ vb怎么做个vb编译器
如果你要自己做程序编译的话很难,就算调用c2.exe和link.exe也没用,因为VB
在调用之前已经在临时目录下生成了一堆看不懂的东西。
但你可以调用VB主程序的命令行来生成程序,如你要生成的程序在D盘根目录,工程文件为
1.vbp那你可以在CMD里打VB6.exe /make D:\1.vbp
具体的可以参照VB6.exe /?
附:
VB的编译过程大致如下,当我们在编辑环境中编写完代码后,VB调用C2将所有的模块(包括CLASS)编译成OBJ文件(能够为机器语言识别的代码)。一下是C2的一些编译参数说明(E文):
- the the name of the prefixed one used for the names of the rowscontaining ' precompilato', one
risen of intermediate tails (from which name of the switch) temporary; these rows are 5 and finish withi suffissi GL, SY, FORMER, IN and DB; they contained are not documented
- f the name of the rows to compile
- W3 warning level 3, level of ' attenzione' dedicating to i warnings
- Gy it qualifies the connection to level of function (function-level linking)
- G5 optimization for the Pentium
- Gs4096 it allows not to insert the code for the control of stack (stack probe) if a function does not
use more than 4096 byte of stack
- dos not documented
- Z1 it removes the name of the bookcase of default from the rows.OBJ
- Fofileobj the name of rows OBJ to generate (rows output)
- Qifdiv it puts in action the corrections for the bug of the division of the Pentium (FDIV bug)
- MILILITER it creates rows eseguibile single-threaded
- basic it indicates the compiler C2 the fact that the compilation it happens for a plan basic
C2完成编译后,VB会调用LINK.EXE将所有的OBJ文件连接成EXE文件,完成编译过程。下面是一段命令行演示如何调用LINK.EXE:
LINK C:\Test\Form1.obj C:\Test\Molo1.obj C:\Test\Progetto1.obj C:\Programmi\Microsoft Visual Studio\VB98\VBAEXE6.lib /ENTRY:__ vbaS /OUT:C:\Test\Progetto1.exe /BASE:0x400000 /SUBSYSTEM:WINDOWS, 4.0 /VERSION:1.0 /DEBUG /DEBUGTYPE:CV /INCREMENTAL:NOT /OPT:REF/MERGE:.rdata =.text /IGNORE:4078
对于我们来说这些参数没有什么意义,用默认的就行了。这段命令行中并没有包括输出函数,如果我们希望输出函数,可以定义一个.def文件,按照格式加入要输出的函数列表,然后在命令行后面加上 “/DEF: 文件名”(当然也可以直接加/ EXPORTS参数),再调用命令行编译,用的denpendency工具查看你就会发现你要输出的函数了。
Def文件格式的定义:
LIBRARY 程序名称
DESCRIPTION "MyDLL - (C) Antonio Giuliana, 2004"
EXPORTS
函数名= ?函数名@函数所在模块名@@AAGXXZ
…
例:
LIBRARY MyDLL
DESCRIPTION "MyDLL - (C) Antonio Giuliana, 2004"
EXPORTS
DllRegisterServer= ?DllRegisterServer@SymExp@@AAGXXZ
DllUnregisterServer= ?DllUnregisterServer@SymExp@@AAGXXZ
注意:函数名和模块名是区分大小写的
我先用Vb编一个截取C2、LINK命令的程序:
C2:
Private Sub Form_Load()
f = UCase$(Left$(Command$, 256))
Open "E:\C2.txt" For Output As #1
Print #1, f
Close
End
End Sub
LINK:
Private Sub Form_Load()
f = UCase$(Left$(Command$, 256))
Open "E:\C2.txt" For Output As #1
Print #1, f
Close
End
End Sub
生成EXE后把VB98下的c2与LINK剪切到别处,在用这两个程序代替。运行VB6.exe,随意打开一个工程,点文件菜单,生成EXE。
不久我编的两个程序就送给我梦寐以求的文件:
E:\C2.txt
-IL "C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\VB381884" -F "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\新建文件夹 (2)\FORM1.FRM" -W 3 -GY -G5 -GS4096 -DOS -ZL -FO"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" -QIFDIV -ML -BASIC
E:\LINK.txt
"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\VBAEXE6.LIB" /ENTRY:__VBAS /OUT:"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.EXE" /BASE:0X400000 /SUBS
这两个TXT就是VB送给c2以及LINK的命令。
详细解读如下:
C2.txt
-IL "C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\VB381884" -F "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\新建文件夹 (2)\FORM1.FRM"是c2准备处理的两个文件。 -W 3 -GY -G5 -GS4096 -DOS -ZL是c2生成OBJ的格式,后边则是OBJ文件的地址。
LINK.txt
"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.OBJ"是源文件。"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\VBAEXE6.LIB"是转换库。后面是EXE文件地址及格式
❼ vb编译错误:必选参数
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double
Dim s As Double, area As Double, r As Integer
a = Val(Text1)
b = Val(Text2)
c = Val(Text3)
If a + b > c Or a + c > b Or b + c > a Then
s = (a + b + c) / 2
area = Sqr(s * (s - a) * (s - b) * (s - c))
MsgBox "三角形的面积是:" & Str(area), , "计算三角形面积程序"
Else
MsgBox "输入的三边不能构成三角形"
End If
End Sub
Private Sub Form_Load()
Text1 = "40"
Text2 = "50"
Text3 = "80"
Command1.Caption = "计算"
End Sub
❽ 在VB中,命令行参数和条件编译参数是用来干什么的
条件编译是个不常用的功能,一般只会用在病毒和系统软件的编写中
他的功能是:如果满足程序的条件,则将#if和#else之间的代码编译成可执行文件,如果不满足,则编译#else和#endif之间的代码
这样做的好处是:简化了程序,使得生成的可执行文件更小,而且在病毒编写中可以用这种方法来实现程序的变体
❾ VB 程序运行时总出现编译错误:必要参数。程序如下,请高手指教!
strsql = strsql & " values (" & Text1 & ",'" & Text2 & "','" & Text3 & "')"
❿ vb提示:编译错误 必选参数
Write #1, X1(u1, sigma1), X2(u2, sigma2), X3(u3, sigma3), X4(u4, sigma4), X5(u5, sigma5), X6(u6, sigma6), X7(u7, sigma7), fbhs(X1(u1, sigma1) ,X2(u2, sigma2),X3(u3, sigma3), X4(u4, sigma4), X5(u5, sigma5), X6(u6, sigma6),X7(u7, sigma7))
改成这样就行了。