私が本当に望んでいるのは、TRACEを機能させることです...
MFC TRACEマクロのことですか?デバッガーのデバッグ/出力ウィンドウにメッセージを書き込むものですか?
残念ながら、ビルド設定を修正して、最終的な実行可能ファイルに静的ライブラリのデバッグ情報が含まれるようにしても、それらのトレースステートメントは返されません。TRACEはマクロであるため、コンパイラーのプリプロセッサーによって処理されます。リリースモードでコンパイルすると、そのマクロはノーオペレーションとして再定義されます。これは、TRACEステートメントがソースコードから削除されたかのようです。
ライブラリと実行可能ファイルにデバッグシンボルを追加する問題を解決したとしても、それらのトレースステートメントは元に戻りません。それらはコンパイル段階で削除されました。
じゃあ何をすればいいの?これらのマクロを十分に深く掘り下げると、最終的にはWin32関数OutputDebugStringを呼び出していることがわかります。この呼び出しは、msライブラリのデバッグバージョンとリリースバージョンの両方で使用できます。したがって、トレースマクロをOutputDebugStringの明示的な呼び出しに置き換えることができます。コーディングするのはそれほど便利ではありませんが、少なくともリリースモードでデバッグ出力を取得できます。
ところで、私はついに何年も前にそれらすべてのマクロをあきらめ、log4cplus呼び出しに完全に置き換えました。トレースマクロが本当に必要なのはデバッグ中ではなく、コードが本番環境にあり、問題をローカルで再現できないためです。顧客が送信できるファイルにログを記録してから、デバッガーでのみ機能するトレースに依存することをお勧めします。とにかく考慮すべきこと...