先用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))
改成這樣就行了。