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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
toshihiro

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

#1 投稿記事 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
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#2 投稿記事 by yu0627 »

 CreateThreadの使い方が間違っています。
 上のようにしてください。
なお、結果を確認するため「#console」を「#prompt」に書き換えさせていただきました。
toshihiro

Re: 返信@yu0627

#3 投稿記事 by toshihiro »

初歩的なミスだったみたいで大変失礼しました。
迅速な回答ありがとうございます。
返信する