2016-01-31 C++における環境違いの一覧 C++ Windows Mac 環境違いの開発でつまずいたところを書いてきます。 見つけ次第更新します。 全体 コードのファイル名 開発環境 ファイル管理 ファイルI/O系 ifstream / ofstream 文字列系 vsprintf グラフィクス系 ウィンドウ表示 描画エンジン ネットワーク系 全体 コードのファイル名 Macとかだと大文字小文字判定あるけど、Windowsでは無視 開発環境 Windows : VisualStudio Mac : XCode(コンパイルのみ)+Atom Linux : Jenkinsとか使うか検討中 ファイル管理 Gitで。 ただWindowsでプロジェクトにファイル突っ込んだりすると簡単にslnが衝突してとても面倒。 ファイルI/O系 ifstream / ofstream Windowsだとファイル名がSJISで表現されているが、Macの場合UTF-8らしい。 そのため、ifstream/ofstreamの第一引数を変えなければならない。 文字列系 vsprintf VC++のみ 対応としてはvasprintfという関数を用いて対応 グラフィクス系 ウィンドウ表示 Windows : WinAPI使えばいくらでも生成可能 Mac : AppKitを使えば作れるらしいけどレガシー。 Obj-CとC++の混在コードで対応するのがベストかも。 描画エンジン DirectXとOpenGLを吸収するのは結構大変そう。 3D関係を概念としてコード記述しないといけないとおもう。 ネットワーク系 POSIXで書けばWindows→Macでほぼいじらなくても同じコードで動いた(はず)