すりごまの鯖缶?ブログ 2缶目

鯖管のことだったりプログラミングのことだったりマイクラのことだったり

C++における環境違いの一覧

環境違いの開発でつまずいたところを書いてきます。


見つけ次第更新します。

全体

コードのファイル名

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++の混在コードで対応するのがベストかも。

描画エンジン

DirectXOpenGLを吸収するのは結構大変そう。
3D関係を概念としてコード記述しないといけないとおもう。

ネットワーク系

POSIXで書けばWindowsMacでほぼいじらなくても同じコードで動いた(はず)