ページ 11

マルチスレッド用のプロシージャが定義できていない?

Posted: 2006年3月20日(月) 14:02
by toshihiro
マルチスレッドを試してみようと簡単なコードを作ってみたのですが、コンパイラーからは「プロシージャが定義されていない」というエラーが返されます。

コード: 全て選択


#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でチェックしてあります。

返信@yu0627

Posted: 2006年3月20日(月) 14:10
by yu0627
 CreateThreadの使い方が間違っています。
 上のようにしてください。
なお、結果を確認するため「#console」を「#prompt」に書き換えさせていただきました。

Re: 返信@yu0627

Posted: 2006年3月21日(火) 01:57
by toshihiro
初歩的なミスだったみたいで大変失礼しました。
迅速な回答ありがとうございます。