2009. 2. 26. 18:32
728x90
리얼베이직의 장점은 멀티 플래폼 (윈도우/리눅스/맥)으로 빌드를 할 수 있다는 것이다. 물론 어느 한 플래폼에서 개발하면서 단순히 클릭 한 번만으로 빌드가 되는건 아니다. 실제로 파일시스템이 다르고 GUI가 다르기 때문에 단순히 변환되지않고 빌드후 실제로 다른 플래폼에서 제대로 동작하는지 확인을 해야 한다.
맥에서 경로는 /Users/brown/Desktop/ 과 같은 방식이지만 알다시피
윈도우에서는 C:\Documents and Settings\brown\바탕화면 이다.
따라서 경로처리를 할때 둘을 다르게 처리해야 한다.
GUI의 경우에 윈도우용으로 대체되는게 기본이다. 예를들면 맥의 버튼은 윈도우용 기본 버튼으로 변경된다.
하여튼 이러한 플래폼간의 차이때문에 코드가 좀 지져분해 지는데..(언제는 깔끔했냐마는) 다음과 같이 각 플래폼 별로 다르게 코드를 작성해야 하는 경우가 자주 발생한다.
#if TargetWin32 then //Code for Windows #else //Code for Mac or Linux #endif
이러한 고난을 극복하고 나면 비로소 각 플래폼별로 실행파일이 만들어지게 된다. 그런데 윈도우 실행 파일의 경우에 사용한 플러그인들이 모두 dll 파일의 형태로 만들어지기 때문에 싱글 프로그램이 되지 못하고 이러한 기생충 같은 자식들(욕이 아님. Children을 말함)을 데리고 다녀야 한다. 또한 이름 변경도 불가능하고 디렉토리 명 변경도 불가능하다. 오직! 실행파일과 같은 디렉토리에 같은 "프로그램이름 Libs" 형태로 존재하여야 한다. 젠장(이건 욕이다)
간단한 프로그램의 경우에 자신이 익숙한 윈도우용 개발툴을 가지고 새로 개발하는 것이 더 쉽고 빠르겠지만. 멀티플래폼 형식에 맞춰(아마도 거의 노하우겠지만) 개발을 해온다면 적은(?) 노력으로 멀티 플래폼용 프로그램을 만들 수 있을 것이다.
윈도우용 FFMPEG for Windows
맥OS용 FFMPEG for Mac
그림에서 보이듯이 맥용 버튼은 윈도우의 기본 버튼으로 교체되었고 128이라고 써있는 컨트롤 이름은 팝업메뉴인데 윈도우에는 팝업 메뉴가 없으므로 콤보박스로 대체되었다. 리스트박스는 헤더 부분이 다를뿐 나머지는 동일하다.
728x90