Hello World 예제





■ C++/CLI 클래스 라이브러리를 이용한 예제

1. 프로젝트 생성


Visual Studio 2008 에서 프로젝트를 생성한다.
"파일" → "새로 만들기" → "프로젝트" 를 선택한다.
템플릿 선택은 다음과 같다.
"Visual C++"  → "CLR" → "클래스 라이브러리" 


2. 생성되는 파일 확인


 Solution Explorer 를 보면 위와 같은 구조로 파일들이 생성된다.
MFC 프로그래밍 시 익숙한 "Stdafx.h" 가 보인다. 즉, C++/CLI 도 미리 컴파일된 헤더를 지원한다.
프로젝트에서 자주 사용되지만, 자주 변경되지 않는 헤더 파일들을 이곳에 선언해 주자.
 실제적으로 코딩해 주어야 하는 곳은 "HelloWorldCLI.cpp", "HelloWorldCLI.h" 파일이다.


3. 클래스 작성




C++/CLI 는 CLR 에서 동작되는 프로그램 이기 때문에 C# 에서와 같이 System 클래스를 참조할 수 있다. 따라서 System::Console::WriteLine() 과 같은 BCL(Base Class Library) 를 이용할 수 있다.
namespace 가 존재한 다는 것을 주의하자.


4. dll 파일 생성


위 코드를 컴파일 하면 클래스 라이브러리 프로젝트 이므로 dll 파일이 생성된다.
이제 이 dll 파일을 다른 .NET 응용프로그램에 참조 시켜서 사용 하기만 하면 된다.


5. C# 콘솔 응용프로그램으로 테스트


HelloWorldCLI 솔루션에 HelloWorldCLI 이름의 C# 콘솔 응용프로그램 프로젝트를 추가 시킨다.




HelloWorldCLI 에서 만들어진 dll 파일을 직접 참조 시켜도 되고, 지금은 같은 솔루션에 존재하기에 "프로젝트" 탭에서 HelloWorldCLI 프로젝트를 참조 추가 시켜 준다.




메인 함수 코드 및 출력 결과이다.






■ C++/CLI 콘솔 응용프로그램 예제

1. 프로젝트 생성


Visual Studio 2008 에서 프로젝트를 생성한다.
"파일" → "새로 만들기" → "프로젝트" 를 선택한다.
템플릿 선택은 다음과 같다.
"Visual C++"  → "CLR" → "CLR 콘솔 응용프로그램" 


2. 생성되는 파일 확인


C++/CLI 클래스 라이브러리 프로젝트와 비교해 보면 HelloWorld2.cpp 파일이 하나 생긴다. 클래스가 아니기 때문에 헤더파일은 만들어 주지 않는다.


3. 메인 함수 작성 및 출력


C, C++ 의 main 함수와 마찬가지로 C++/CLI 도 Main 함수가 응용프로그램의 Entry Point 이다. C# 콘솔 응용프로그램을 작성하게 되면 Main 함수의 Syntax 는 다음과 같다.

int Main(String[] arg) {...}

물론 C# 에서 Main() 함수의 Syntax 는 리턴값과 매개변수의 종류에 따라 4가지가 되긴 하지만, 아마도 위 형태가 맵핑 되는 형태같다. 이로서 알 수 있는 것은 C# 에서 System.String[] 의 타입은 C++/CLI 에서 array<System::String^>^ 과 맵핑됨을 유추할 수 있다.
 .NET Framework 프로그램밍 언어들은 ANSI 코드를 사용하지 않고 UNICODE 를 지원한다. 따라서 WriteLine 함수의 인자도 UNICODE 형태로(L"Hello World") 작성되어 있다.





■ History

1. 2009.09.26

Posted by six605
,