① 在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也要同样处理