① 在VB中怎麼獲取命令行參數
直接使用Command對象
Private Sub form_load()
Dim ss
If Command <> "" Then
ss = Command '將命令行參數賦值給ss
'這里寫你要執行的代碼(ss中就是你的命令行參數)
End If
End Sub
例如:
Private Sub form_load()
Dim ss
If Command <> "" Then
ss = Command '將命令行參數賦值給ss
MsgBox "你的命令行參數是:" & ss
End If
End Sub
假設編譯為abc.exe,路徑為d:\abc.exe
在運行里輸入 d:\abc.exe MyMingLingHang
程序運行時 msgbox 就提示 你的命令行參數是:MyMingLingHang
對於 \a \b 等一類多參數命令行也是全部存儲在Command中的
具體使用時可以對ss字元串進行切分、判斷等一系列操作
② VB編譯錯誤錯誤的參數號或無效的屬性賦值怎麼辦
第三行和第四行的Text1右邊不應該是逗號,而應該是點!表示訪問Text1的成員。還有,最後多寫了一行End Sub,去掉就可以了。(雖然,事實上我發現,在回答女生提出的問題後,即使回答完全正確,也很少被認可,但我還是依然選擇,繼續幫助別人而不管其是男是女。)'-'完整代碼如下:Private Sub Command1_Click()
'
Dim y%, m%
y = Val(Text1.Text) ' 注意!這兩行,需要改成點".",而不是逗號","!並且在點右邊沒有空格!
m = Val(Text2.Text)
Print "本年為;"; y; "年"; m; "月"; IIf(Day(DateSerial(y, 3, 0)) = 29, "閏年", "不是閏年")
Print "目前還是"; Choose((m + 2) \ 3, "春", "夏", "秋", "冬"); "天"
Print "本月有"; Day(DateSerial(y, m + 1, 0)); "天"
'
End Sub
③ VB怎麼寫帶參數的啊
用COMMAND() 函數可以獲得參數
如:
Private Sub Form_Load()
MsgBox Command()
End Sub
編譯為A.EXE
在CMD中找到A.EXE的路徑,輸入A.EXE HELLO 或A HELLO
對話框中顯示的就是你輸入的參數.
④ 在VB中,命令行參數和條件編譯參數是用來干什麼的
條件編譯
是個不常用的功能,一般只會用在病毒和系統軟體的編寫中
他的功能是:如果滿足程序的條件,則將#if和#else之間的代碼編譯成可執行文件,如果不滿足,則編譯#else和
#endif
之間的代碼
這樣做的好處是:簡化了程序,使得生成的可執行文件更小,而且在病毒編寫中可以用這種方法來實現程序的變體
⑤ VB中的"命令行參數"怎麼用
給你做個簡單的介紹吧,先做下面的
'添加窗體Form1,然後添加如下代碼:
"winmm.dll"Alias"mciSendStringA"(ByVallpstrCommandAsString,,ByValuReturnLengthAsLong,ByValhwndCallbackAsLong)AsLong
PrivateSubForm_Load()
SelectCaseLeft(Command,2)
Case"/o"'表示open,打開光碟機
mciSendString"SetCDAudioDoorOpenWait",0&,0&,0&
Case"/c"'表示close,關閉光碟機
mciSendString"SetCDAudioDoorClosedWait",0&,0&,0&
EndSelect
UnloadMe
EndSub
將上面的編譯成test.exe,放到c:\下,然後打開命令提示符窗口,敲入c:\test.exe /o看看,是不是打開光碟機了?再試試c:\test.exe /c
⑥ 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編程中,過程章節中的形參和實參有什麼區別具體點
形參:全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳如的參數.
實參:全稱為"實際參數"是在調用時傳遞個該函數的參數.
形參和實參的類型必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指針類型時,在該函數運行時,形參和實
參是不同的變數,他們在內存中位於不同的位置,形參將實
參的內容復制一份,在該函數運行結束的時候形參被釋放,
而實參內容不會改變.
而如果函數的參數是指針類型變數,在調用該函數的過程
中,傳個函數的是實參的地址,在函數體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函數體內部
可以改變實參的值.
給你一個很簡單的例子:
int f(int b) /*b為形參*/
{ return b;}
main()
{int a=1; <br/>printf("%d",f(a));/*a為實參*/ <br/>}
⑧ VB編程中必選參數什麼意思
提示必選參數的原因是
sum = 0
這一句,VB當作你是調用sum(n As Integer) 這個方法了,可以將sum=0這句換成其他變數。或者將該方法聲明為函數
Private Function sum(n As Integer) as double
此時使用 sum = 0表示將函數返回值設為0
⑨ vb編譯錯誤必選參數什意思什麼意思
tcpServer.Accept = requestID
改為
tcpServer.Accept requestID
Accept是方法而不是屬性!屬性才需要用等號賦值,方法則後面跟隨的是參數
後面的SendData和GetData也要同樣處理