VB中回调函数的一个问题
之前碰到一个问题,VB中向一个C++写的DLL中注册一个Callback,C++在调用这个Callback时有些问题,具体问题描述和下面这个帖子中的情况是一样的: http://topic.csdn.net/t/20051104/09/4370840.html
经过尝试以后发现,在VB中写的回调函数必须是用Function关键字,并且,必须要设置返回值,如下:
Public Function Callback () As Long
’TODO: Here
Callback = 0
End Function
如果这个回调中没有声明返回值,并且没有Callback = 0这个情况,就会出现上述帖子中的问题.
相关文档:
有静态和动态两种,静态的需要lib而动态的只需要一个dll就可以了(但是要知道函数的定义一般是头文
件)动态相对复杂一点!但是掌握了也不是很难
//第一步 定义函数指针就是你要调用的函数,参数必须一致,不然就内存泄露
typedef HANDLE ......
VB中的Unicode 和 Ansi 格式
Visual Basic 32-bit 版本的字串处理采用 Unicode,也就是说字串在 VB 内部是以Unicode 的格式来存放。何谓 Unicode?简单的说,就是每一个字符都是以 2-byte 的形式表示,而每个「实体字符」就是一个「字符」。因此,
Len("大家好")
Len("abc")
& ......
Private Sub PrintTxt(txt As String, ConWidth As Long, LeftPosition As Long)
Dim str As String
Dim str1 As String
Dim len1 As Long
str = txt
len1 = ConWidth
&nbs ......
利用API把一个控件绑定到另一个控件里
利用API把一个控件绑定到另一个控件里。不过要控件有HWND属性。例如:
New_OldParent& = SetParent(Me.Text_txt.hWnd, Me.picture_bj.hWnd)
把txt控件添加到picture控件里使用。
注:使用 ......