Java 라이브러리는 대개 .JAR (Java Archive) 형식으로 패키지화 되지만 Java Bindings 라이브러리에서 .JAR 패키지를 패키지화하여 Xamarin.Android 응용 프로그램에서 해당 기능을 사용할 수 있다.
Java Bindings 라이브러리의 목적은 .JAR 파일의 API를 자동 생성 코드 래퍼를 통해 C # 코드에서 사용할 수 있도록 하는 것이다.
Xamarin Tooling(자마린 툴링)은 하나 이상의 입력 .JAR 파일에서 Bindings Library를 생성 할 수 있으며 바인딩 라이브러리 (.DLL 어셈블리)에는 다음이 포함되어 있다.
원본 JAR 파일의 내용
.JAR 파일 내dml Java Type을 래핑하는 C# Type인 Managed Callable Wrappers(MCW), 생성 된 MCW 코드는 JNI (Java Native Interface)를 사용하여 API 호출을 기본 .JAR 파일로 전달한다.
기본적으로 안드로이드와 함께 사용하도록 지정된 모든 .JAR 파일에 대한 바인딩 라이브러리를 작성할 수 있지만 Xamarin Tooling(자마린 툴링)은 현재 Android가 아닌 Java 라이브러리 바인딩을 지원하지 않는다.
DLL이 런타임시 .JAR에 종속되도록 .JAR 파일의 내용을 포함하지 않고 바인딩 라이브러리를 빌드하도록 선택할 수도 있다.
안드로이드 스튜디오에서 새로운 프로젝트를 생성하고 location, application name, company domain을 기술하고 다음 페이지 Target Android Device에서 “Phone and Tablet” 선택
Java 라이브러리는 대개 .JAR (Java Archive) 형식으로 패키지화 되지만 Java Bindings 라이브러리에서 .JAR 패키지를 패키지화하여 Xamarin.Android 응용 프로그램에서 해당 기능을 사용할 수 있다.
Java Bindings 라이브러리의 목적은 .JAR 파일의 API를 자동 생성 코드 래퍼를 통해 C # 코드에서 사용할 수 있도록 하는 것이다.
Xamarin Tooling(자마린 툴링)은 하나 이상의 입력 .JAR 파일에서 Bindings Library를 생성 할 수 있으며 바인딩 라이브러리 (.DLL 어셈블리)에는 다음이 포함되어 있다.
원본 JAR 파일의 내용
.JAR 파일 내dml Java Type을 래핑하는 C# Type인 Managed Callable Wrappers(MCW), 생성 된 MCW 코드는 JNI (Java Native Interface)를 사용하여 API 호출을 기본 .JAR 파일로 전달한다.
기본적으로 안드로이드와 함께 사용하도록 지정된 모든 .JAR 파일에 대한 바인딩 라이브러리를 작성할 수 있지만 Xamarin Tooling(자마린 툴링)은 현재 Android가 아닌 Java 라이브러리 바인딩을 지원하지 않는다.
DLL이 런타임시 .JAR에 종속되도록 .JAR 파일의 내용을 포함하지 않고 바인딩 라이브러리를 빌드하도록 선택할 수도 있다.
안드로이드 스튜디오에서 새로운 프로젝트를 생성하고 location, application name, company domain을 기술하고 다음 페이지 Target Android Device에서 “Phone and Tablet” 선택
MFC 발견 2주차자료입니다.
GUI 개발에서 핵심인 이벤트-드리븐에 대해서 다룹니다. 이벤트와 메시지, 핸들러에 대한 개념은 SDK(API)와 MFC를 비교하며 다룹니다.
또한 유니코드, 멀티바이트(MBCS)에 대한 개념을 다룹니다.
마지막으로 리소스에 대한 이해를 통해 리소스의 필요성에 대해 알아봅니다.
MFC 발견 1주차 자료입니다.
GUI프로그래밍과 윈도우 프로그래밍 소개입니다.
MFC의 전신인 SDK(API)와의 비교, Qt 라이브러리 간단한 소개, 닷넷의 간단한 소개 등 MFC 외에도 다양한 GUI 및 윈도 프로그래밍 기술에 대해 소개를 합니다.
MFC와 SDK(API) 비교를 통해 MFC의 캡슐화된 개념을 알아봅니다. 또한 MFC가 왜 탄생을 하게 되었는지에 대해서도 소개를 합니다.
MFC의 소스코드들을 직접 찾아가보면서 어떻게 MFC가 구성되며 실행되는지에 대한 내용을 파해쳐봅니다.
전반적으로 MFC에 대한 진입장벽을 낮추어 주는데 초점을 맞추었습니다.
MFC 발견 2주차자료입니다.
GUI 개발에서 핵심인 이벤트-드리븐에 대해서 다룹니다. 이벤트와 메시지, 핸들러에 대한 개념은 SDK(API)와 MFC를 비교하며 다룹니다.
또한 유니코드, 멀티바이트(MBCS)에 대한 개념을 다룹니다.
마지막으로 리소스에 대한 이해를 통해 리소스의 필요성에 대해 알아봅니다.
MFC 발견 1주차 자료입니다.
GUI프로그래밍과 윈도우 프로그래밍 소개입니다.
MFC의 전신인 SDK(API)와의 비교, Qt 라이브러리 간단한 소개, 닷넷의 간단한 소개 등 MFC 외에도 다양한 GUI 및 윈도 프로그래밍 기술에 대해 소개를 합니다.
MFC와 SDK(API) 비교를 통해 MFC의 캡슐화된 개념을 알아봅니다. 또한 MFC가 왜 탄생을 하게 되었는지에 대해서도 소개를 합니다.
MFC의 소스코드들을 직접 찾아가보면서 어떻게 MFC가 구성되며 실행되는지에 대한 내용을 파해쳐봅니다.
전반적으로 MFC에 대한 진입장벽을 낮추어 주는데 초점을 맞추었습니다.
위자드 ( 마법사 ) 를 통해 비주얼 스튜디오는 혼동되거나 시간이 많이 소요되는 작업들을 쉽게 할 수 있도록 도와준다 . 또한 , 작업자들이 지루한 코딩 작업을 피하고 코드의 재사용을 늘리며 , 코드 관리를 줄여 줄 수 있게 도와준다 .
AppWizard 의 첫단계에는 응용프로그램의 기본적인 구조를 결정합니다 . 응용프로그램이 단일 문서 인터페이스를 지원할 것인지 , 다중 문서 인터페이스를 지원할 것인지 , 아니면 대화상자만을 나타나게 할 것인지 결정할 수 있습니다 . 단일 문서 인터페이스 (SDI) 는 메모장 같은 것을 말합니다 . 다중 문서 인터페이스 (MDI) 는 동일한 도큐먼트로 다중 뷰를 지원하며 예로는 엑셀 , MS 워드가 있습니다 . 대화상자는 도큐먼트 / 뷰 구조를 갖지 않으며 예로는 계산기 , 지뢰찾기가 있습니다 .
AppWizard 의 두번째 단계에는 데이터베이스 지원 기능을 포함시킬 것인지 결정합니다 . MFC 는 OLE DB 와 ODBC, DAO 를 통한 데이터베이스 엑세스를 지원합니다 . None 옵션을 선택하면 , 데이터베이스 지원기능을 사용하지 않게 됩니다 . Header files only 는 뜻 그대로 헤더파일로 된 데이터베이스 관련 파일을 지원받겠다는 것이다 . Database view without file support 는 응용 프로그램이 데이터베이스 레코드들을 문서로 취급한다는 것을 의미한다 . Database view with file support 는 응용프로그램이 데이터원본으로 부터 데이터를 읽고 쓸 수 있을 뿐만 아니라 데이터의 파일 형태 표현을 제공하는 것을 의미한다 .
세번째 단계에서는 응용 프로그램에서 필요한 복합 문서 지원을 지정할 수 있게 한다 . Container 를 선택하면 MFC 에 엑셀파일 , MS 워드 문서 등을 포함시킬 수 있다 . Mini-server 는 다른 응용
네번째 단계에서는 응용 프로그램의 사용자 인터페이스를 조정할 수 있게 합니다 . 이 대화상자에는 응용 프로그램의 여러가지 모습들을 선택할 수 있게 하는 옵션들이 있습니다 .
다섯번째 단계에서는 프로젝트 구현을 위한 최종 옵션들을 설정합니다 . 프로젝트의 스타일 , 기본 주석값 발생여부 , MFC 라이브러리의 사용정도 등을 정할 수 있다 . MFC Standard 는 단일 뷰만 사용하여 프로젝트를 생성한다 . Windows Explorer 는 탐색기 화면과 같이 응용 프로그램을 수직으로 분할하여 , 2 개의 뷰가 나타나도록 생성한다 .
6 단계에서는 생성될 클래스들의 이름과 헤더파일이름 , 소스파일이름 , 베이스 클래스등을 지정해줄 수 있다 .
MFC 응용 프로그램들은 많은 헤더파일을 포함하고 있으므로 전처리기를 통한 처리가 대부분이라고 하더라도 약간의 시간이 소요되게 된다 . 프리컴파일 헤더기능은 컴파일 할때 전처리기에 의해 수행된 모든 것들을 특별한 이진파일에 저장한다 . 결론적으로 헤더파일들을 단 한번만 컴파일해도 되도록 만들어주며 , 다음 사용부터는 이전에 만든 이진파일을 로드하는 방식을 사용하여 컴파일 속도가 증가된다 .
C++ 에서 구현파일과 선언파일을 분리하여 작업하는 것은 코딩 유연성과 코드 재사용을 의미한다 . 그러나 클래스 구조가 바뀔 때 별도의 두 파일을 편집해야하는 불편함이 따르게 된다 . 비주얼 C++ 에서는 이 작업을 간단히 할 수 있도록 ClassWizard 를 지원해주는데 , ClassWizard 를 통해 클래스를 쉽게 추가하고 관리할 수 있다 .
ClassWizard 에서 Add Class 를 눌러서 New 를 누르면 다음과 같은 대화상자가 나온다 . New Class 대화상자에는 생성할 클래스 이름과 Base Class 를 선택할 수있다 .