掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッド内からVBの関数をコールバックするには (ID:60856)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
スレッド内から、じかにVBの関数を関数ポインタを使って 呼び出す(コールバックする)は、やめました。 いろいろ探っているうちに、どうやら、 スタック領域がずれてくるように見えたからです。 (すいません、VCのレジスタウインドウで見ているのですが 憶測で言っているので気にしないでください) そこで、以下の方法に切り替え、無事動作するようになりました。 ・DLL(スレッドを立ち上げる前段階で)、VBのウインドウハンドルを 渡しておく。 ・VB側は、メッセージフックAPIを用いて、自分が作ったオリジナルの メッセージWM_APPとwParamの組み合わせと受信できるように 待ち受けさせる。 ・DLLはコールバックを行わない代わりに、SendMessageを経由して VBに通知する ・通知を受けたVBはDLL側で保持している文字列などの情報を 読み出す。 #_beginthread を使うと、DLLからみたVBはスレッドセーフでは ないようなイメージなんでしょうかね。あと、VBというのは VB自身が多重で呼ばれるようなシーンは対応できていないのか? と勝手に解釈してます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.