私の日常業務の一部は、従来の VB6 アプリケーションの保守と拡張です。一般的なエンジンは C/C++ で記述されており、VB6 はこれらの関数を使用してパフォーマンスを向上させます。
非同期プログラミングに関しては、C インターフェイスでは不十分であり、COM コントロールに依存して VB6 へのイベントを発生させます。
私の問題は、VB6 でコントロールを登録すると、VB がこのコントロールをメモリにロードし、VB6 IDE を終了するまでアンロードしないことです。コントロールは常にロードされているため、DLL ファイルがロックされているため、VC6 で再コンパイルできません。
私が見つけた解決策は、VB でコントロールを有効にするのではなく、コントロールCreateObject()
の完全な名前を使用することです。問題は、VB6 は私が使用しているインターフェイスを何も認識せず、IntelliSense にアクセスできないため、コントロールをオブジェクトとして宣言する必要があることです。これは苦痛です。
アプリケーションを終了した後、または IDE で直接コントロールをアンロードするように VB6 に指示する方法はありますか?