私は最近までVB6で動作していた古くからのCOMオブジェクトを持っています。 (彼らはすべてではありません)。 (svnによって検証されたように)行われた唯一のコード変更は、配列に新しい文字列リテラルを含めることです。VB6 COMオブジェクト - IDEの実行中のみ機能しますか?
VB6 IDEはオブジェクトを細かくコンパイルします。私は実行を打つとき| ...起動し、コマンドプロンプトから次のテストVBスクリプトを実行し、オブジェクトが正常に動作し、私は私が期待してダイアログボックスを参照してください。
dim o
set o = CreateObject("MyDll.MyClassName")
wscript.Echo "Testing object"
wscript.Echo o.HelloWorld ' runs a test method that returns "Hello World"
wscript.Echo "Done"
しかし、私はIDEでデバッグを停止する場合そして、同じコマンドプロンプトから同じVBScriptを実行しようと、私はエラーを取得:
(ProgIDがセキュリティ上の理由から削除されますが、それは、スクリプトと同じです。)
物事を私は試しました:
私は、DLLが登録および未登録VBで私が起動したときに、デバッガを停止された可能性があることが疑わので、私はまた、テストスクリプトを実行する前に、
regsvr32
でオブジェクトを登録しようとしました。これは効果がありませんでした。また、レジストリからDLLへの参照をすべて削除し、オブジェクトを再登録しました。同じエラー。
私はDLLを削除し、VB(File | Make ...)から再構築してDLLを再登録しました。同じエラー。
マシンはWin7 Ultimate x64、VB6でビルドされたオブジェクトです。
提案がありますか?
残念ながら、C#でオブジェクトを書き直すことはできません。
正確に実行されますどのようなあなたはデバッガを起動しますか?これは実際にEXEプロジェクトですか?その後の動作は正常です。 –
プロジェクトはEXEではなくActiveX DLLです。 「実行」をクリックすると、IDEが何をしているのか分かりません。 –