Newer
Older
libkc / modules / include / kc_windows.h
/**
 * @file kc_windows.h
 * @brief KC Windows 用ヘッダファイル
 * @copyright  2000 - 2023  Nomura Kei
 * @depends none
 *
 * 本ヘッダーファイルでは、Windows の場合、よく利用されるヘッダファイルを
 * インクルードし、必要な設定を実施する。
 */
#ifndef KC_WINDOWS_H
#define KC_WINDOWS_H
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) || defined(__WIN32__) || defined(WIN64) || defined(_WIN64) || defined(__WIN64) || defined(__WIN64__)
#define KC_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 <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#ifdef _MSC_VER
#pragma comment(lib, "ws2_32.lib")
#endif
#else
#define KC_IS_WINDOWS (0)
#endif
#endif // KC_WINDOWS_H