掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VCのexeからVBのActiveX DLLを呼んでフォームをモーダル表示 (ID:61729)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
先日、 Activex DLLのイベントを拾うには? という質問 http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200604/06040044.txt で回答いただきました。 おかげさまで、VB6.0で作ったActiveX DLLを、VC6.0のMFCで作ったexeから呼んでDLL内のフォームを表示し、そこでの発生イベントをVCのexe側で拾うこともできるようになりました。 ただ、そのActiveX DLL内のフォームをモーダルで表示した場合はうまくいくのですが、モーダレスで表示しようとすると、実行時エラーが起こってしまいます。 具体的には、 「 "実行時エラー '406': ActiveX DLL、ActiveX コントロール、またはプロパティ ページからこのホスト アプリケーションにモードレスフォームを表示することはできません。 」 というエラーです。 ActiveX DLL内で、フォームオブジェクトをshowメソッドで表示しようとしているところで発生します。 Set m_objfrmSampleX = New FrmSampleX m_objfrmSampleX.Show vbModeless ←ここで発生★ なお、 http://support.microsoft.com/?scid=kb;ja;233997&spid=3042&sid=88 を見て、 「 ActiveX DLL プロジェクトのプロパティ フォームで、[全般] タブにある [スレッド モデル] の値を [シングル スレッド] に変更します。その ActiveX DLL を再コンパイルし、MTS パッケージに配置し直します。 」 という解決方法を試してみたのですが、症状は変わりませんでした。 (「MTS パッケージに配置し直します」という部分がよくわからなかったので、ただビルドし直して、DLLを差し替えただけですが・・・) ちなみに、VBで作ったexeで、同ActiveX DLLを呼んだ場合は、モーダルでもモーダレスでもうまく行きます。 なので残るはVCの問題なのかなと思い、こちらに投稿させて頂きました。 OSはWindowsXPです。 宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.