有关VB.NET中Addressof的有关问题
有关VB.NET中Addressof的问题
Private Declare Function CreateThread Lib "kernel32 " ( _
ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, _
ByVal lpParameter As Long, ByVal dwCreationFlags As Long, ByVal LpthreadId As Long) As Long
上面这个创建线程的API函数,在VB6中我可以这样调用它:
meTheard.Handle = CreateThread(LongNull, LongStackSize, AddressOf RunURL0, LongNull, LongCreationFlags, LpthreadId)
在.NET中它提示: "Addressof "表达式不能转换为 "Long ",因为 "Long "不是委托类型。
小弟我是刚从VB6转到.NET,还请大家多多指教。
------解决方案--------------------
实例化个delegate,AddressOf RunURL0 处写委托变量
如:(仅供参考)
Delegate Sub MyDelegate(ByVal str As String)
...............
Dim mysub As New MyDelegate(AddressOf aaa)
...............
meTheard.Handle = CreateThread(LongNull, LongStackSize, mysub, LongNull, LongCreationFlags, LpthreadId)
...............
Private Sub aaa(ByVal str As String)
End Sub
------解决方案--------------------
好像不是,AddressOf RunURL0是代理调用了一个过程,没有返回值,但是你的参数要求你返回一个Long类型,无法转换,不太明白为什么你的VB6能这么做
------解决方案--------------------
see
System.Threading.Thread
Private Declare Function CreateThread Lib "kernel32 " ( _
ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, _
ByVal lpParameter As Long, ByVal dwCreationFlags As Long, ByVal LpthreadId As Long) As Long
上面这个创建线程的API函数,在VB6中我可以这样调用它:
meTheard.Handle = CreateThread(LongNull, LongStackSize, AddressOf RunURL0, LongNull, LongCreationFlags, LpthreadId)
在.NET中它提示: "Addressof "表达式不能转换为 "Long ",因为 "Long "不是委托类型。
小弟我是刚从VB6转到.NET,还请大家多多指教。
------解决方案--------------------
实例化个delegate,AddressOf RunURL0 处写委托变量
如:(仅供参考)
Delegate Sub MyDelegate(ByVal str As String)
...............
Dim mysub As New MyDelegate(AddressOf aaa)
...............
meTheard.Handle = CreateThread(LongNull, LongStackSize, mysub, LongNull, LongCreationFlags, LpthreadId)
...............
Private Sub aaa(ByVal str As String)
End Sub
------解决方案--------------------
好像不是,AddressOf RunURL0是代理调用了一个过程,没有返回值,但是你的参数要求你返回一个Long类型,无法转换,不太明白为什么你的VB6能这么做
------解决方案--------------------
see
System.Threading.Thread