2011-06-20 27 views
1

我試圖將日誌整合到我的Windows C++應用程序中,並且我想使用Pantheios,因爲它通常有非常好的評論。包括這就是說,所有的例子都是用宏象PANTHEIOS_LITERAL_STRING等,用於包裝的字符串文字,並要求類似的typedef:Pantheios寬字符?

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 - 任何想法?

+0

問題是什麼?如何構建有或沒有寬字符支持?你遇到什麼確切的錯誤信息? –

+0

我基本上在問我是否瘋了 - 是不是每個人都只是用寬字符串來使用這個庫?我繼續使用widetring支持,但如果將它們記錄到文件中,則會很痛苦,因爲每個字符都是兩個字節。因此寫字板顯示日誌消息,如: –

+0

thisisyourlog –

回答

1

正如您所觀察到的,文件後端在多字節構建中假定多字節輸出,默認情況下在寬構建中寬輸出,但IIRC有初始化選項(對於be.file),允許您單向強制或另一個,不管你如何建設。

fwiw,我認爲這些例子必須考慮到所有的排列,這就是爲什麼你報告的「醜陋」在那裏。如果你只是建立一個字符編碼或另一個字符編碼,你不必這樣做。非常像使用TCHAR和所有_tcsXXX()函數的Windows編碼示例:除非要使代碼與兩者兼容,否則不必這樣做。

HTH