1

ロギングをWindowsC++アプリケーションに統合しようとしていますが、一般的に非常に好意的なコメントがあるため、Pantheiosを使用したいと思いました。とは言うものの、含まれているすべての例は、文字列リテラルをラップするためにPANTHEIOS_LITERAL_STRINGなどのマクロを使用しており、次のようなtypedefが必要です。

typedef std::basic_string<PAN_CHAR_T> string_t;

正しくコンパイルします。これは醜いと思います。これらのtypedefは使用したくないと思います。

次に例を示します。http://www.pantheios.org/doc/html/cpp_2misc_2example_8cpp_8misc_8strings_2example_8cpp_8misc_8strings_8cpp-example.html

PANTHEIOS_USE_WIDE_STRINGSを無効にしてPantheiosをコンパイルしようとしましたが、ビルドエラーがたくさん発生します-何かアイデアはありますか?

4

1 に答える 1

1

あなたが観察したように、ファイルバックエンドはマルチバイトビルドでマルチバイト出力を想定し、デフォルトでワイドビルドでワイド出力を想定していますが、IIRCには初期化オプション(be.file用)があり、いずれかの方法で強制することができます、構築方法に関係なく。

fwiw、例ではすべての順列を考慮に入れる必要があると思います。そのため、報告する「醜さ」がそこにあります。どちらかの文字エンコード用にビルドしているだけの場合は、それを行う必要はありません。TCHARとすべての_tcsXXX()関数を使用するWindowsコーディングの例とほとんど同じです。コードを両方で機能させたい場合を除いて、これを行う必要はありません。

HTH

于 2011-06-21T01:06:12.833 に答える