VB程序员博客
03 25th, 2010
小弟编了一个VB窗体,在窗体启动的时候得到一个数组。这个数组变量要作为参数传递到DLL中去,我该如何在VB和VC中声明呢?
另外,调用DLL中的函数最后得到的结果怎么传回VB呢?
小弟刚开始学VB,仅仅知道函数如何在DLL中和VB中声明,变量就不知道了。请各位大侠说的详细一点,谢谢啦,我急用。
一维的数值类型,或全部成员都为数值类型的自定义类型。
这种情况比较好办。
如果是多维、String 类型变量,就有点不好处理了。
<
01 27th, 2010
我想在VB中实现以下getvar函数的功能 获取和返回给定变量名的变量值
已经找了一整天了,还没有结果呀
9.5.1 getvar函数
getvar函数用于获取和返回给定变量名的变量值,该变量名由参数name给定,变量名必须遵循wml有关变量命名的语法和规定。如果参数指定的变量不存在,那么函数就会返回空字符串。getvar函数的语法格式如下:
wmlbrowser.getvar(name)
其中的参数name必须是字符串形式表示的变量名,变量值也将以字符串的形式返回。如果变量名的语法不正确,那么函数就会返回无效值invalid。
例如,在下面的几行程序中,变量name被赋值"good!",所以当使用getvar函数测试它的变量值的时候,会得到"good!"的结果。
var name = "good!";
var a = wmlbrowser.getvar("name"); // 返回变量name的值,故a = "good!"
还有常量 获取和返回给定常量名的常量值
C# 的资料复制到VB版了!
在VB中到底能不能实现getvar函数的功能呀!!!
获取和返回给定变量名的变量值
还搞不定!
估计不行吧,VB不支持泛型
所谓的变量常量编译后都是一个内存地址而已
VB里面据我所知没有类似的方法.
但是有一个折衷方案,就是使用CallByName.
此法使用的限制就相对来说大了,需要目标属性/常量是某个对象的公有接口.
仔细想想就能了解,这是在调用COM接口,所以能以字符串来标志接口名称.
01 27th, 2010
我想在VB中实现以下getvar函数的功能 获取和返回给定变量名的变量值
已经找了一整天了,还没有结果呀
9.5.1 getvar函数
getvar函数用于获取和返回给定变量名的变量值,该变量名由参数name给定,变量名必须遵循wml有关变量命名的语法和规定。如果参数指定的变量不存在,那么函数就会返回空字符串。getvar函数的语法格式如下:
wmlbrowser.getvar(name)
其中的参数name必须是字符串形式表示的变量名,变量值也将以字符串的形式返回。如果变量名的语法不正确,那么函数就会返回无效值invalid。
例如,在下面的几行程序中,变量name被赋值"good!",所以当使用getvar函数测试它的变量值的时候,会得到"good!"的结果。
var name = "good!";
var a = wmlbrowser.getvar("name"); // 返回变量name的值,故a = "good!"
还有常量 获取和返回给定常量名的常量值
C# 的资料复制到VB版了!
在VB中到底能不能实现getvar函数的功能呀!!!
获取和返回给定变量名的变量值
还搞不定!
估计不行吧,VB不支持泛型
所谓的变量常量编译后都是一个内存地址而已
VB里面据我所知没有类似的方法.
但是有一个折衷方案,就是使用CallByName.
此法使用的限制就相对来说大了,需要目标属性/常量是某个对象的公有接口.
仔细想想就能了解,这是在调用COM接口,所以能以字符串来标志接口名称.
05 26th, 2009
在这个网站提供的一个示例程序,《MSFlexgrid控件气泡提示及鼠标钩子源码 》
http://www.codefans.net/search.php?keyword=msflexgrid&searchbutton.x=45&searchbutton.y=10
变量声明如下:
Option Explicit
Private Declare Function ShellExecute Lib "shell32" Alias "ShellExecuteA" (ByVal HWND As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'API call to get Balloon Tips working
Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
'Declare of a new Tool Tip Object
Dim MSFlexGrid1_Tip As New clsTooltips
Dim c As Integer 'Column
Dim r As Integer 'Row
Dim Operator1 As String
在操作实际中,本地窗口中看不到c ,r 等内在变量。
这是为什么????????
好像是Private Declare 起的作用。
05 10th, 2009
我有一个TEXT,里面放的是XXXX-XX-XX,然后我把它转为DATE型
DATE = CDATE(text)
然后我想拿数据库里的一个日期类型的数据来和它比较,该怎么调用呢?
rs.Open "select * from 出差时间表 where 工号='" & CmoCode.Text & "' and 出差开始时间 = '" & Date & "'", conn, adOpenKeyset, adLockOptimistic
红色报错说类型不匹配,然后我把单引号给去掉了。。变成这样rs.Open "select * from 出差时间表 where 工号='" & CmoCode.Text & "' and 出差开始时间 = " & Date & "", conn, adOpenKeyset, adLockOptimistic
结果是查不到数据。。。但是数据库里有这条记录
请问到底该怎么实现呢??
哦解决了再次谢谢vbman2003的帮助!
01 8th, 2009
我现在有个问题,我在做一个大于8byte 的数据变量累加,把结果转换成16进制显示的时候,用HEX是不行的,因为HEX最多8byte,问题是计算机本来就是HEX运算的,
何必让VB把它自动转换成10进制,然后我再转换成16进制,是不是多此一举呢?有没有办法直接把变量的 16进制数据直接提出来显示?
回楼上,我说的不是 字符串变成数字运算,我说的是 从BIN文档中通过二进制方法读出来的,已经在运算了,所以不存在字符ASCII的问题,我要的是最后的结果能直接变成ASCII字符串显示就好了,但是目前的方法是首先要把十进制变成16进制,然后再变成字符串运算,因为在内存中是2进制的,每4个BIT就是一个HEX的位,我们在写汇编的时候一般都是按照16进制运算的,反而要变成10进制要通过函数转换,所以我们应该可以直接把变量里边的二进制数读出来,比如一个BYTE最大就是255,也就是FF,但是VB显示给我们都是255,而不是2进制或者16进制,说明已经给了转换。我就是想不要这种自动转换。 直接读出数值转换成字符就快速多了。
我刚才看了一下MSDN
Hex 函数
返回代表十六进制数值的 String。
原来是返回的字符串,原来如此,我都当作数据了,
实际上不管你什么进制的只是显示方便的问题。
实际上电脑都是用2进制运算的。
12 16th, 2008
dim aa as Variant
在本地窗口,aa 的值为空值,类型为Variant/Empty
请问各位大侠的问题是
end sub(End Function)前,加aa = Empty 将aa清空好.
还是不执行aa = Empty ,由end sub (End Function)程序自动将aa在内存中清除。
12 10th, 2008
如:
aa1=[1,2,3]
aa2=[3,4]
aa3=[2,3]
需要一个循环对aa1,aa2,aa3进行操作
如果用二维数组的话他们的维数不同啊
所以想对变量名进行操作,使得循环时用aai ,i=1,2,3
如果不可以的话,各位还有什么高招啊,小妹在此谢过了
有这样做的?那敢情好!
还是老老实实做吧
呵呵楼主说的肯定不可以,你想实现什么说说看,没看明白你想实现的是什么
另一思路!
使用控件做变量! 设置生成需要的控件个数! 例如 一个text控件 需要多少个就生存多少个
text(1)-text(?)各自存储你需要纪录的数据!
写代码的时候可以
for i = 1 to ?
text(i)=…..
next i
我用一维数组来做这样的题 刚开始的话 用的是上面的方法..
这个不太可行
使用控件数组
如果用二维数组的话他们的维数不同啊
解:可用lbound和ubound
基本上不明白你想干什么
我也想知道如何操作
11 10th, 2008
就是原来的load form1能否改成load frm
frm="form1"
如果可以的话又应该怎么写
可以用,谢谢了
可以用,谢谢了
Private Sub Command1_Click()
Dim frm As Object
Set frm = Form2
frm.Show
End Sub
1楼这个frm也是个变量,但已经确定frm是FORM类型的变量
我这个应该更符合楼主的意思吧
11 10th, 2008
If rst.Fields("mima").Value = Text2.Text Then
Unload Me
Load formain
formain.Show
Else
If num < 3 Then
num = num + 1
MsgBox "用户口令不对!请重新输入,你还有 " & Str(3 - num) & " 次机会。", vbOKOnly + vbExclamation
Text2.SetFocus
Exit Sub
Else
Do While 1 > 0
Loop
End If
End If
为什么输出的总是还有2次机会啊?代码错在哪里?
恩,谢谢!怎么就这样定义不行,dim num as integer。这样不表示num初始值为0吗?
是表示,但是每次都会初始化为0,不会累加
哦。。非常感谢!