1
namespace settings{
#if defined(WIN32) && !defined(UNIX)
typedef wchar_t char_t;
#elif defined(UNIX) && !defined(WIN32)
typedef char char_t;
#else
typedef char char_t;
#endif
typedef std::basic_string<char_t> string_t;
typedef std::basic_ostream<char_t> stream_t;
}
我一直是這樣的,我可以改變整個應用程序回吐聊天WCHAR。它在Linux中工作,但是當我試圖在VS 2010中編譯相同的代碼時它給了我
錯誤C2371:'settings :: char_t':redefinition;不同的基本類型 看到「設置:: char_t」
我所有的代碼使用settings::char_t
和settings::string_t
等的聲明。現在我需要改變我的代碼?或者有一些更簡單的出路?
你是什麼對象而定兩次是什麼意思?雙重包含是不可能的,因爲頭文件有'ifndef/def'定義 – 2012-08-12 14:55:54
哦!是。我很確定。 IDE沒有創建用於保護雙重包含的定義。謝謝 – 2012-08-12 14:59:13
但爲什麼它沒有在Linux下的GCC中引發任何錯誤? – 2012-08-12 15:02:40