by toshihiro » 2006年3月20日(月) 14:02
マルチスレッドを試してみようと簡単なコードを作ってみたのですが、コンパイラーからは「プロシージャが定義されていない」というエラーが返されます。
コード: 全て選択
#strict
#console
Dim dw As DWord
Dim sw As DWord
Dim hnd As HANDLE
Function Thread(i As Integer)
Print i
Thread = i
sw = 1
End Function
hnd = CreateThread(ByVal NULL, 0, AddressOf(Thread(1)), NULL, 0, VarPtr(dw))
Thread(256)
Do
Loop Until sw = 1
CloseHandle(hnd)
ちなみにスレッド用に定義したプロシージャを直接呼び出すとうまくいくのでどうしたらいいのか頭を抱えてしまいました。
WindowsXP SP2上のActiveBasic 4.22/4.23でチェックしてあります。
マルチスレッドを試してみようと簡単なコードを作ってみたのですが、コンパイラーからは「プロシージャが定義されていない」というエラーが返されます。
[code]
#strict
#console
Dim dw As DWord
Dim sw As DWord
Dim hnd As HANDLE
Function Thread(i As Integer)
Print i
Thread = i
sw = 1
End Function
hnd = CreateThread(ByVal NULL, 0, AddressOf(Thread(1)), NULL, 0, VarPtr(dw))
Thread(256)
Do
Loop Until sw = 1
CloseHandle(hnd)
[/code]
ちなみにスレッド用に定義したプロシージャを直接呼び出すとうまくいくのでどうしたらいいのか頭を抱えてしまいました。
WindowsXP SP2上のActiveBasic 4.22/4.23でチェックしてあります。