|
分類:[C/C++]
開発環境 Visual Studio2013 言語:C++(MFC) 開発PC:Windows7
いつもお世話になっています。 現在マルチバイト文字セットを使用しているMFCのプロジェクトをUnicodeを使用する形に修正を行おうと実験しているところです。 その中で既存の関数について困っているので教えて下さい。
catchの中で例外とファイル名、行番号を渡し、ログに出力する関数なのですが、 その関数を呼び出す際に、__FILE__ __LINE__を引数として渡しているので、 使用している箇所全てでエラーになっています。(100か所はゆうに超えています・・・)
呼び出し側で_T(__FILE__)とすればコンパイルは通る(実行結果の確認はまだです)ので最悪そのようにしようとは思うのですが 数が多すぎるので、なんとかオーバーロードで対応できないかと考えています。 問題の関数は以下の様に宣言されています。
static void CatchError(CException* pex, CString strSpot); static void CatchError(_com_error &e, const CString strFile, const int nLine); static void CatchError(CException* pex, const CString strFile, const int nLine);
また、呼び出す際は CatchError(pex, __FILE__, __LINE__); // pexはCException*です このように呼び出しています。
3番目の関数はstrFileとnLineをFormatして1番目の関数を呼び出す様に実装されています。
|