728x90
300x250

[C, C++] 멀티플렛폼 구현 - 원리

 

윈도우에서도 동작가능하고 리눅스에도 동작가능한 멀티플렛폼 코드를 작성해야할 일이 생깁니다.
이럴 땐 아래의 내용을 참고하시면 됩니다.

 

#ifdef WIN32 // Windows Platform

 

#else          // Linux (Unix) Platform

 

#endif

 

위의 형태로서 선언하면 Multi Platform을 제어할 수 있습니다.

 

예를 들어 Delay(int)의 경우, Linux에서 지원하고, Windows에서는 Sleep을 지원합니다.

(단, Windows.h에서 지원)

 

이의 경우를 예를 들어서

#ifdef WIN32

#include <windows.h>

#else

#include <unistd.h>

#endif

 

이처럼 구현할 수 있습니다.

 

int System(const string)의 경우,

반환 자체를 System()함수가 하기 때문에 TRUE, FALSE로서 해당 운영체제가 지원하는 명령어가 올바른지 확인할 수 있습니다.

 

이를 응용해서

윈도우 환경에서 지원하는 CLS를 리눅스에서도 가능한지 판별할 수 있습니다.

 

if(System("cls"))

// 참

else

// 거짓

 


1. 맺는말

 

실제 멀티플랫폼을 수작업으로 구현하기 위해서는 무척 많은 태스팅을 수행해야 합니다.

 

반응형

+ Recent posts