掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッド内からVBの関数をコールバックするには (ID:60854)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
RAPT殿 質問に載せたソースは、調べている段階では整理してしまって ますが、いろんなデバックが入っており、次のことは分かっていました。 ・debugprocという関数ポインタの指しているアドレス位置は スレッド内外共(※1と※2の部分)に、同じ場所を指しています。 VB側でもアドレスを出してみようとしたのですが、できませんでした。 Dim aaaa As Long aaaa =addressof dbghandler MsgBox "address is " & Hex(aaaa) こんなカンジで表示しようとしてみたのですが、文法エラーになってしまいます。 ・アプリケーションエラーが発生するタイミングは、※2の、 debugprocを実行している部分でした メッセージ"4"を表示せずに、アプリケーションエラーになります。 ※2{ MessageBox(0,"1",NULL,MB_OK); sprintf(buff,"thread(): xxx=%d", sts ); MessageBox(0,"2",NULL,MB_OK); dbuf=buff; MessageBox(0,"3",NULL,MB_OK); debugproc(dbuf); MessageBox(0,"4",NULL,MB_OK); } #関数ポインタが悪いというよりも、VBのEXEの状態と DLLのスレッドとの関係を調べなければならないようですね。 Blue殿 >VC側でデバッグは可能でしょうか? はい。やってみようと思っています。 >コールバック関数の引数はBSTRでいけるんですね。 どこかの掲示板で掲載されていた情報でした。 少し改造すると文字列を相互で書き換えもできるとかなんとか。。 #こちらで継続して調べてみます。 そのうち自己解決できるかもしれませんが、他にも 有識者の意見をお聞かせください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.