ページ 11

ab5cp5でのCreateThread

Posted: 2008年9月02日(火) 05:49
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))

Posted: 2008年9月02日(火) 13:38
by イグトランス
Funcはどうなっているでしょうか?
Function Func(x As VoidPtr) As DWordなどという形になっていれば,CreateThread内で直接AddressOfしても問題ありません。

逆に,そうでないものはそのあたりの確認が厳密になったため指摘の通りのエラーになってしまいます。その場合は一旦変数に格納するのが現状てっとり早い回避策になるようです。なお,64ビット対応のためにpFuncの型はVoidPtrにするのがお勧めです。