Delphi 5 IDE(オフィスアプリケーションをホストとして使用)からCOM Officeアドインを実行すると、ブレークポイントは正常に動作します(リモートデバッグシンボルと適切に設定された出力フォルダを使用する場合)。私のコードで非デルファイの例外(アクセス違反のような)の中で、IDEがその時点で中断するようになります。代わりに、IDEは外部のsafecallメソッドのtry ... exceptラッパーを手動で再起動すると停止します。DelphiのアドインDLLでDebugHookが1に設定されていないのはなぜですか?
何らかの理由でDebugHookグローバルが0に設定されていることがわかりました。私が知っている限り、IDE内から実行するときは常に1に設定する必要があります。さらに、私のDLLの初期化中に手動で1に設定すると、実際に問題が修正されました。私の実験的な(read:crappy)コードが例外をトリガする行でIDEがきれいに停止します。
質問は次のとおりです。なぜですか?手動でこれを行う必要があるのはなぜですか? IDEがこれを私のために設定するべきではありませんか?私はこの行動を誘発する重要な重要な設定を忘れましたか?
提案していただきありがとうございますが、それは私がすでにやっていることです(開発のための他の賢明な設定がありますか?しかし、リモートデバッグシンボルの検索には、Delphi 5では問題があります(XP以降では、IDEの現在のディレクトリを出力フォルダに設定する必要があります。そうしないと、シンボルをモジュールダイアログから手動で再ロードする必要があります)。あなたは何かに乗っているかもしれません。再度、感謝します! –