Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozpoznawanie systemu operacyjnego C

Ostatnio zmodyfikowano 2015-12-14 15:41
Autor Wiadomość
Dizip
Temat założony przez niniejszego użytkownika
Rozpoznawanie systemu operacyjnego C
» 2015-11-20 13:32:49
Wie ktoś może jak w języku C rozpoznać system na jakim program zostanie wywołany. Chciałbym zrobić oddzielne funkcje dla linuxa, freeBSD i sunosa, da rade to wykonać?
P-140433
1aam2am1
» 2015-11-20 15:48:39
C/C++
#ifdef WIN32
//kod dla winodowsa
#endif
P-140441
DejaVu
» 2015-11-20 20:22:02
Tak. Popatrz sobie jak to robi boost albo biblioteka SFML. Przykład oparty o SFML-a:
C/C++
//===================================================================//
#if defined(SFML_SYSTEM_WINDOWS)
#include "!Win32/ClipboardImplWin32.hpp"
typedef ddt::wrp::_impl::ClipboardImplWin32 ClipboardImplT;
#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
//#include "!Linux/ClipboardImplLinux.hpp"
typedef ddt::wrp::Clipboard ClipboardImplT;
#elif defined(SFML_SYSTEM_MACOS)
//#include "!OSX/ClipboardImplOsX.hpp"
typedef ddt::wrp::Clipboard ClipboardImplT;
#endif //INFO: wybór implementacji
//===================================================================//
Implementacja makr SFML-a:
C/C++
#if defined(_WIN32) || defined(__WIN32__)

// Windows
#define SFML_SYSTEM_WINDOWS
#ifndef NOMINMAX
#define NOMINMAX
#endif

#elif defined(linux) || defined(__linux)

// Linux
#define SFML_SYSTEM_LINUX

#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)

// MacOS
#define SFML_SYSTEM_MACOS

#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

// FreeBSD
#define SFML_SYSTEM_FREEBSD

#else

// Unsupported system
#error This operating system is not supported by SFML library

#endif
P-140458
Dizip
Temat założony przez niniejszego użytkownika
» 2015-12-14 15:41:23
DejaVu, dziękuje za tą odpowiedz. Życie ratujesz ;)
P-141955
« 1 »
  Strona 1 z 1