朝から祭りか。おめでてーな。
締め処理をして、フレームワークの直しの続き。
ちゃっちゃと直して送りましょう。
そのあとずーっと悩んでいた DLL の問題の調査を開始する。
今のプログラムって、ActiveX コントロールを ActiveX DLL のフレームワークの中から WithEvents 変数として制御してるんだけど、どうもおかしな動作をするんだよね。
開発マシンが 2 台あったとすると、A のマシンで ActiveX コントロールとフレームワーク、またそれを使う EXE プログラムをコンパイルして、B のマシンにコピー、レジストリ登録をする。
もちろんコンパイル後の EXE、DLL、OCX はうまく動くんだけど、デバッグしようと思ったときにおかしな動作が…。
EXE をデバッグしようとして、B のマシンで EXE のソースを開く。
で、実行すると「型が一致しません」のエラーが。
デバッグログをファイルに出力するなりしてトレースしてみると、どうも OCX のオブジェクトを WithEvents 変数に代入するところでこけてるようだ…。なぜ?
マイクロソフトのサポート情報を検索しても、グーグル先生に聞いてもダメ。
ひ~。
いろいろ試してみたら、DLL のプロジェクトで OCX を「コンポーネント」として登録しておくとダメっぽい。
試しに「コンポーネント」から外して「参照設定」で追加したらエラーは出なくなった…。
こんなのわかんねーよ!ヽ(`Д´)ノ ウワァァン
解決したと思ったら、ダメだった…。
やっぱり「コンポーネント」として登録しておかないとイヴェントが拾えない。
22 時タイムアップ! わがんね。
(2003/03/24 00:00:00 更新)