3

私は次のものを持っています

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': 再定義; さまざまな基本型については、「settings::char_t」の宣言を参照してください

私のすべてのコードの使用settings::char_tなどsettings::string_t..すべてのコードを変更する必要がありますか? または、より簡単な方法がありますか?

4

1 に答える 1

0

それがグローバルだったとしても、あなたの typedef は囲まれてnamespace settingおり、これについてより多くの情報を得ることができます. プロジェクトでファイルが 2 回ターゲットにされていないことを確認しますか?

于 2012-08-12T13:45:58.390 に答える