2016-12-06 4 views
1

VB6 COMオブジェクトのメソッドにバグがあります。これは、従来のASPページで、 "OBJECT RUNAT = server PROGID = fgcom id = bla VIEWASTEXT>/OBJECT"形式のWebアプリケーション(従来のASPと新しいASP.NET、Visual Studio 2015のミックス)で使用されます。私はすべてのコードを持って、VB6のIDEを含む、ISSは7.5(7勝)です。VB20 VB20のCOMオブジェクトをVS2015の従来のASPページで使用しました。

COMオブジェクトにデバッグできますか?それ、どうやったら出来るの?

答えて

1

VB6 IDEでCOMコンポーネントをデバッグできます。

実際にVB6 IDEでプロジェクトを開くと、エラーが発生したサブまたは関数の最初の実行可能行にブレークポイントを設定し、IDEでコンポーネントを起動してから、消費するアプリケーションを実行しますそれはVB6コンポーネントメソッドの呼び出しのポイントです。その時点でVB6 IDEが最小化されると点滅し、ブレークポイントに焦点が当てられ、IDEでステップ関数と時計関数を使用できます。これは、最も簡単なケースである呼び出しコードと同じコンピュータにIDEがあることを前提としています。

注意

  1. 私はあなたが一時的にあなたのコンポーネントが既にメモリ内に既にある場合、それはあなたの呼び出し元のコードからの呼び出しを受ける可能性があるため、時間効率のために、デバッグ中にクラスの名前を変更することをお勧めします。したがって、コードがMyComponent.SomeClassをインスタンス化し、VB6でMyComponent.SomeClassAに変更し、デバッグ作業の期間中に呼び出しコードを変更し、ソリューションを見つけたら最終的なコンパイルのためにリセットします。再起動などでメモリ内のバージョンをフラッシュすることはできますが、クラス名を切り替えると、より簡単で確実です。

  2. コンポーネントのデバッグバージョンが呼び出されていることを確認するには、コンポーネントの初期化サブにブレークポイントを設定します。

セットアップが完了したら、本当に簡単で、繰り返し可能で効率的なプロセスです。

+1

レイトバインディング(CreateObject)を使用している場合、名前の変更はうまくいくはずです。しかし、それが早期バインディング(コンパイル時の参照)であれば、これは追加の複雑さを引き起こします。参照を作成する必要があります... – DaveInCaz

+1

@DaveInCazはい、私はいくつかの合併症があると思うが、彼はすべてのソースのコントロールを持っている場合、それは完全にできるようにOPを怖がらせたくありませんでした。しかし、良い点。どれどれ。 –

+0

私はあなたの方法をデバッグすることができました。名前の変更はなく、スムーズになりました(レイトバインディング、はい)。ありがとう。 –

関連する問題