- /**
- * @file os.hpp
- * @brief J Library OS 関連ヘッダファイル。
- * @copyright 2001 - 2024 Nomura Kei
- * @depends
- *
- * Windows の場合、よく利用するヘッダをインクルードします。
- */
- #ifndef J_OS_HPP
- #define J_OS_HPP
- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) || defined(__WIN32__) || defined(WIN64) || defined(_WIN64) || defined(__WIN64) || defined(__WIN64__)
- #define IS_WINDOWS (1)
-
- // DMC にて winsoc2.h を利用する場合、_WINSOCK_API_ が必要
- // 詳細は、下記URL参照
- // http://www.digitalmars.com/d/archives/c++/idde/326.html
- #ifdef __DMC__
- #define _WINSOCKAPI_
- #include <sys/types.h>
- #endif
-
- // サポートする OS バージョン指定として、Windows 10 以降を指定する。
- // 参考までに他バージョンの値は次の通り。
- // Windows 2000 0x05000
- // Windows XP 0x0501
- // Windows Server 2003 0x0502
- // Windows Server 2008 0x0600
- // Windows 7 0x0601
- // Windows 8 0x0602
- // Windows 10 0x0A00
- #ifndef WINVER
- #define WINVER 0x0A00
- #endif
- #ifndef _WIN32_WINNT
- #define _WIN32_WINNT 0x0A00
- #endif
-
- // よく利用されるヘッダファイルをインクルードする
- #include <winsock2.h>
- #include <ws2tcpip.h>
- #include <windows.h>
- #include <netioapi.h>
- #ifdef _MSC_VER
- #pragma comment(lib, "ws2_32.lib")
- #pragma comment(lib, "iphlpapi.lib")
- #endif
-
- #else
- // ##### Windows 以外 #####
- #define IS_WINDOWS (0)
-
- #endif // Windows 判定
- #endif // J_OS_HPP