ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
-
ゲスト
#1
投稿記事
by ゲスト »
CreateThread(0,0,AddressOf(Func),0,0,VarPtr(lpThread))
直接AddressOfを入れると
要求されている関数ポインタのパラメータまたは戻り値が一致しません。
などと言うエラーメッセージが出ます
一度変数に入れると良いみたいですが
Dim pFunc As DWord
pFunc = AddressOf(Func)
CreateThread(0,0,pFunc,0,0,VarPtr(lpThread))
-
イグトランス
- 記事: 899
- 登録日時: 2005年5月31日(火) 17:59
- お住まい: 東京都
-
連絡する:
#2
投稿記事
by イグトランス »
Funcはどうなっているでしょうか?
Function Func(x As VoidPtr) As DWordなどという形になっていれば,CreateThread内で直接AddressOfしても問題ありません。
逆に,そうでないものはそのあたりの確認が厳密になったため指摘の通りのエラーになってしまいます。その場合は一旦変数に格納するのが現状てっとり早い回避策になるようです。なお,64ビット対応のためにpFuncの型はVoidPtrにするのがお勧めです。