|
查看: 2846|回复: 36
|
Visual Basic 6.0(VB6) 疑难讨论区
[复制链接]
|
|
|
由于最近自己在工作上有需要用到Visual Basic 6.0 (注意:不是.NET)。
自己本身多年前曾经接触过,不过时日已久忘了七七八八了,而且之前学的也不深。
目前工作上(Automation)需要用到VB6来建立机械操作平台,
需要其他仪器互相接收与发送信号。
愿意在这里开一个专区让VB6的用户集中讨论所遇见的问题。
当然不是局限在Automation,欢迎一切问题,集思广益。
相关读物:
- Visual Basic 6 身世
更新中。。。
[ 本帖最后由 einsttan 于 13-8-2008 11:35 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 13-8-2008 11:09 AM
|
显示全部楼层
疑难:1 Declare Function COMMSRead% Lib "mil32dev" (ByVal hController&, ByVal nCOMMSAddress%, ByRef fValue!)
解答:meemee
这是type character,用来代替data type。
$ = string
& = long
! = single
% = integer
Dim hController as String '(可以写成)
Dim hController$
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[ 本帖最后由 einsttan 于 14-8-2008 09:59 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 13-8-2008 11:13 AM
|
显示全部楼层
Declare Function COMMSRead% Lib "mil32dev" (ByVal hController&, ByVal nCOMMSAddress%, ByRef fValue!)
根据VB6,Declaration不能有符号的。但是上面的Function这样写的原因是什么?
例如:Dim hController& as String 就会有错误。应为Variable夹入了“&”符号。
目前为止在网上找不到相关的疑难的答案。
那个朋友可以解释以上的符号?
[ 本帖最后由 einsttan 于 13-8-2008 11:18 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 14-8-2008 12:09 AM
|
显示全部楼层
回复 3# einsttan 的帖子
这是type character,用来代替data type。
$ = string
& = long
! = single
% = integer
Dim hController as String '(可以写成)
Dim hController$
dim MyLongInteger as long
dim MyLongInteger&
dim MyInteger as integer
Myinteger = &HFFFF% '(= -1)
Myinteger = &HFFFF& ' (overflow error) |
|
|
|
|
|
|
|
|
|
|
发表于 14-8-2008 09:44 AM
|
显示全部楼层
回复 4# meemee 的帖子
看上一樓時我還在blur blur的
看到你的解釋後才想起vb6有這些東東
 |
|
|
|
|
|
|
|
|
|
|
发表于 14-8-2008 05:47 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 14-8-2008 07:34 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 14-8-2008 09:53 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 27-8-2008 11:21 AM
|
显示全部楼层
还有 就是 vb 到底有没有 unsigned long 的?
[ 本帖最后由 tensaix2j 于 27-8-2008 11:34 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 27-8-2008 10:44 PM
|
显示全部楼层
原帖由 tensaix2j 于 27-8-2008 11:21 AM 发表 
还有 就是 vb 到底有没有 unsigned long 的?
vb6没有 unsigned (除了byte),vb.net 就有 unsigned
vb6:
byte = 0 - 255 (unsigned)
integer = -32,768 - +32,767 (signed)
long = -2,147,483,648 - +2,147,483,647 (signed)
vb.net:
byte = 0 - 255 (unsigned)
char = 0 - 65535 (unsigned)
ushort (或uint16) = 0 - 65,535 (unsigned)
uinteger (或uint32) = 0 - 4,294,967,295 (unsigned)
ulong (或uint64) = 0 - 18,446,744,073,709,551,615 (unsigned)
short (或int16) = -32,768 - +32,767 (signed)
integer (或int32) = -2,147,483,648 - +2,147,483,647 (signed)
long (或int64) = -9,223,372,036,854,775,808 - +9,223,372,036,854,775,807 (signed)
还有就是,vb.net 的 integer type (integer, long) 的 byte 长度是 vb6 的 2 倍 |
|
|
|
|
|
|
|
|
|
|
发表于 28-8-2008 08:58 AM
|
显示全部楼层
vb 6 好像连基本的 >> << bit shift operator 都没有。  |
|
|
|
|
|
|
|
|
|
|
发表于 28-8-2008 02:34 PM
|
显示全部楼层
|
bit shift operator 不基本了。。 |
|
|
|
|
|
|
|
|
|
|
发表于 29-8-2008 11:43 AM
|
显示全部楼层
再来就是 += 或 ++ 也没有。
记得第一次用 vb 时差点吐血。。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 29-8-2008 11:31 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 11-9-2008 10:20 AM
|
显示全部楼层
我有vb的问题想要问问各位。。。
我现在开发着的软件需要用到Timer来不间断的一直call 一个 dll ...
每次我call那个DLL 的 function 都需要用到大概 1s 的时间来process...
这直接造成我的Form 会 lag of responsive.. 因为当vb call 那个 dll 的时候,如果我按button 或切换去别的 form 都必须等它先处理完。。。
有没有什么办法可以解决这个问题?
PS: 我有试过DoEvents,但还是不行。。 因为 call 着 dll 时 vb 并不会执行 DoEvents...
有何高见?  |
|
|
|
|
|
|
|
|
|
|
发表于 13-9-2008 09:28 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 13-9-2008 09:29 PM
|
显示全部楼层
|
刚刚发现,原来在 vb 可以用 createProcess 的方式来执行shellcode 的。。 |
|
|
|
|
|
|
|
|
|
|
发表于 15-9-2008 02:05 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 15-9-2008 02:30 PM
|
显示全部楼层
回复 17# tensaix2j 的帖子
原来createProcess 只是执行shellcode...
帮不上忙...  |
|
|
|
|
|
|
|
|
|
|
发表于 15-9-2008 03:39 PM
|
显示全部楼层
记得以前有看过VB6怎样做Multithread的。
帮妳找找看。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|