S/W Development/bada2010. 11. 15. 15:16

바다 SDK의 기본 예제 중 하나인 Basic App을 추가하면, Project Explorer에 다음과 같은 파일이 자동으로 추가되어 집니다.

 

 

  • BasicApp.cpp
    • 메인 애플리케이션 컨트롤러
  • Form 1/2/3.cpp
    • 이 애플리케이션이 갖는 세 개의 폼에 대한 인터페이스
  • FormMgr.cpp
    • 폼 간의 이동과 같은 부분을 관리함
  • BasicAppEntry.cpp
    • 메인 엔트리 포인트로 바다 IDE가 자동으로 만들어주는 템플릿이므로 굳이 수정할 필요 없음.
    • C언어와 C++에서 main function과 같은 기능으로써 애플리케이션이 실행될 때 가장 먼저 호출되는 곳.

 

 

BasicAppEntry.cpp 소스 코드입니다.


20번째 줄에서 int OspMain(int argc, char *pArgv[]) 함수를 보면, C언어와 C++에 Main 함수와 함수명만 빼고는 똑같습니다. 바다 플랫폼에서는 모든 애플리케이션이 이 함수부터 시작한다고 보면 됩니다.

 

22번째 줄에서는 unsigned long으로 정의한 result r에 E_SUCCESS를 대입하고, 에러나 익셉션을 발생시킨 부분은 변수 r을 수정하여 전체적인 프로그램 흐름을 잡습니다.

 

30번째 줄에서 Application Framework이 Osp::App::Application을 상속받은 BasicApp의 CreateInstance를 호출하여 실행합니다. 위에서 ArrayList로 인자값을 모두 할당하여 이 때 같이 던져주는 것을 볼 수 있습니다.

 

약간 특이한 부분이라면 34번 째 줄에서 r &= 0x0000FFFF; 으로 비트 연산하는 것을 볼 수 있는데, 이 부분은 OspMain 함수의 리턴값이 Integer형인데, result가 unsigned long으로 선언되었기 때문입니다. 모두 0xFFFFFFF 로 비트연산해도 무방합니다. 리턴할 때는 꼭 integer로 캐스트해주어야 빌드타임에 에러가 발생되지 않습니다.

Posted by ILTAL