Declare Function getUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, ByRef nSize As Integer) As Integer
<DllImport("kernel32.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function lstrlenA(ByVal InString As String) As Integer
End Function
如果不是系统的,而是第三方的DLL,请事先将其复制到foxtable目录下。
一旦定义了,就可以直接在任何地方使用上面的API函数,例如:
Return lstrlenA("ABC")
Foxtable的全局变量定义和使用都不便利,而且不是所有的事件都能引用,现在你可以在全局代码中定义变量,用Public代替Dim,这样定义的变量可以在任何事件代码中引用,例如:
Public gbStartDate As Date
Public gbEndDate As Date
这样就定义了两个日期型全局变量,分别为gbStartDate 和 gbEndDate ,你可以在任何事件代码中直接使用,例如:
MessageBox.show("起始日期:" & gbStartDate)
为了避免全局变量和事件中定义的变量出现名称冲突,建议全局变量统统用gb开头。
全局代码中不仅可以定义变量和API函数,还可以直接定义过程或者函数,例如:
Public Function LenStr(ByVal val As String) As Integer
Dim b() As Byte = System.Text.Encoding.ASCII.GetBytes(val)
Return b.Length
End Function
定义好之后,你可以在任何事件代码中使用这个函数:
MessageBox.show(lenstr("ren们"))
3、虽然原有的全局变量不够便利,但是可以绑定,而且有事件跟踪其值的变化,所以不仅不会淘汰的,还增加了一个统一定义的界面: