vb里怎样实现传递函数地址?
具体如下,我想初始化时创建一个线程
Private Declare Function CreateThread Lib "kernel32" (_
ByVal lpThreadAttributes As Object,_
ByVal dwStackSize As Long ,_
ByVal lpStartAddress As Long ,_
ByVal lpParameter As Integer,_
ByVal dwCreationFlags As Long,_
ByVal LpthreadId As Long) As Long
线程调用函数:
Private Function ThreadFunc1(_
ByVal hwnd As Long,_
ByVal wMsg As Long,_
ByVal wParam As Long,_
ByVal lParam As Long) As Long
MessageBox(0,"thread1","info",0)
End Function
初始化函数:
public Sub Initialize(ByRef lpfnBasFunc As Long)
'定义省略
lNull = 0
lStackSize = 0
lCreationFlags = 0
hThread = CreateThread(lNull,lStackSize,lpfnBasfunc,lNull,lCreationFlags,lpThreadId)
End Sub
有几个问题我不理解,
1,怎样才能定义C语言里的PVOID变量?即返回类型不确定的变量,AS ANY在vs2005里不能用了;
2,怎样实现传递函数地址?我想把ThreadFunc1这个函数的地址传进initialize里,然后再initialize里调用CreateThread来创建线程,我试过addressof,编译提示addressof不能转换为long,因为long不是委托类型。。。。不解(我传进来的函数地址不是给我自己调用的,而是作为参数传给windows API CreateThread的);
3,vb里有没有NULL?或者说有没有什么常量是相当于VC里的NULL的?
以上代码我想实现创建线程,如果有哪里需要修改请指出来,本人今天才刚接触VB --!不胜感激
相关问答:
我有厂家做的ASP的监控录像(DVR)的局域网播放的源程序与控件,想要用ASP.net做一个视频回放的程序(利用他的控件)但不知如下去做,望各位指点。
先搞清楚他们的控件是怎么用的,
然后就直接用好了.
不过,如 ......
希望大家能够帮我下.感谢了..
源码传在大米盘 VB6 的源码 http://www.damipan.com/file/3wNoKLW.html
转为VB.NET源码.
小弟完全是新手 不懂的说.麻烦各位帮忙一下
我的EMAIL是:4452 ......
用VB怎么只针对windows自带的文件的右键添加菜单 如(.txt .doc)
这个是只针对以这两个为扩展名的文件操作
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\txtfile\shell\[随便起名]\command]
@= ......
就是设计一个计算机模拟考试系统,带有学生和管理员,所以登录窗体和主窗体想分开,登陆学生的显示学生的主窗体,登陆管理员显示管理主窗体,我只会一个窗体用一堆控件,现在享有多个主窗体,不知道怎么做,希望请大 ......
在下是vb的新手,想写段程序,在vb中,使用wscript调用一些外部的命令,但是程序执行一直有错误,请各位高手帮忙解答下,谢谢。
代码如下:
VB code:
Private Function getFile_CMD(filename, filepath) As Bo ......