4

Visual Basic 6.0 でスタック トレース情報を取得することはできますか。つまり、.NET スタック トレースと同様のエラーを引き起こす関数名と正確な行を見つけたいということです。テスト環境では問題なく動作する ActiveX DLL を作成しましたが、実稼働環境ではエラーがスローされます (エラー: 91-オブジェクト変数またはブロック変数が設定されていません)。これに関するヘルプは大歓迎です。

4

5 に答える 5

4

これはそれを行うための良い方法です-既存の重複した質問に対する答えです。MZToolsを使用して、エラーハンドラーを自動的に挿入します


または、 Microsoftの無料のスタンドアロンデバッガーであるWinDBGを使用して、実稼働環境でビルドされたDLLをデバッグすることもできます。DLLをシンボル付きのネイティブコードにコンパイルします(PDBファイルを作成します)。

これは、VB6でWindbgを使用することについてのMicrosoftの人による2006年のブログ投稿と、Windbgの簡単な紹介を含む別のMicrosoftの人による2004年のブログ投稿です。

于 2010-07-30T07:58:39.347 に答える
1

唯一のオプションは、VB6のエラー処理を使用して手動で行うことです。
次に例を示します
。http ://www.vbaccelerator.com/home/vb/code/Techniques/RunTime_Debug_Tracing/article.asp

于 2010-07-30T00:45:03.457 に答える
1

VB6 には、それをネイティブで行う適切な方法がないようです。

少し面倒ですが、いつでもテキスト ファイルに行を追加するカスタム ソリューションを作成できます。次のようなメソッドをどこかにまとめます。

Public Sub LogCall(message as String)
    Open "c:\My Documents\sample.txt" For Output As #1
    Print #1, message
    Close #1
End Sub

そして、独自の関数から手動で呼び出します

LogCall "MyFunction: Line 42"

問題が解決するわけではありませんが、問題を絞り込むのに役立つ場合があります。

特定のエラーに関しては、オブジェクトを変数に割り当てている状況を確認して確認します.Setキーワードを忘れて、まったく同じエラーが発生するのは簡単です.

于 2010-07-30T00:53:08.543 に答える
1

これを行うための私の推奨方法は HuntERR です。それは寛容なライセンスの下にあるため、どのプロジェクトでも問題なく使用できます。

http://www.devx.com/vb2themax/Tip/19792

これは VB6 用の優れた静的ライブラリであり、必要なだけの情報を含む完全なスタック トレースを可能にします。

IDE にエラー ハンドラと行番号を挿入するための自動化機能があると、大きなメリットがあります。

リンクされているアーカイブには、VB6 IDE アドインと思われるものなど、私がよく知らない多くの追加機能があります。これを VB6 キットのコレクションに追加します。

このライブラリは、文字通り「え?」からあなたを連れて行ってくれます。スタック トレースに完全な行番号を付けることで、VB6 を正しく使用すると、プロフェッショナル レベルのエラー処理が可能になります。

于 2012-08-10T20:33:06.467 に答える
0

あなたはVB6でそれを得ることができないかもしれません。前の質問Errオブジェクト
からできるだけ多くの情報を取得します。

于 2010-07-30T00:43:56.133 に答える