cross platform development
クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基本的にC/C++。
- メモ
- コンパイラ
- UNIX
- Windows
- 32bitかどうか
#ifdef _WIN32(これはよく使う、WIN32でもよい) - 64bitかどうか
#ifdef _WIN64 - GUIアプリかどうか
#ifdef _WINDOWS - CUIアプリかどうか
#ifdef _CONSOLE - Windowsのバージョン … WINVER
※ PC向けWindows(95/98/Me/NT/2000/XP/Vista)とWindows CEの両方で定義される- #if (WINVER >= 0x030a) // Windows 3.1以降
- #if (WINVER >= 0x0400) // Windows 95/NT4.0以降
- #if (WINVER >= 0x0410) // Windows 98以降
- #if (WINVER >= 0x0500) // Windows Me/2000以降
- #if (WINVER >= 0x0501) // Windows XP以降
- #if (WINVER >= 0x0600) // Windows Vista以降
- Windows 95/98/Meのバージョン … _WIN32_WINDOWS
- MFCアプリケーションで、PC向けWindowsかどうか(Windows CEでは定義されないため)
#ifdef _WIN32_WINDOWS - #if (_WIN32_WINDOWS >= 0x0400) // Windows 95以降
- #if (_WIN32_WINDOWS >= 0x0410) // Windows 98以降
- #if (_WIN32_WINDOWS >= 0x0500) // Windows Me以降
- MFCアプリケーションで、PC向けWindowsかどうか(Windows CEでは定義されないため)
- Windows NTのバージョン … _WIN32_WINNT
- #if (_WIN32_WINNT >= 0x0500) // Windows 2000以降
- #if (_WIN32_WINNT >= 0x0501) // Windows XP以降
- #if (_WIN32_WINNT >= 0x0600) // Windows Vista以降
- Windows CE(PocketPC)かどうか
#ifdef _WIN32_WCE - Windows CEのバージョン … WINCEOSVER
- Windows CEなら以下実行
WCE_IF(CEのとき, 非CEのとき) - Internet Explorerのバージョン … _WIN32_IE
- 32bitかどうか
- Cygwin