내가 주로 클라이언트 프로그램을 만들때 사용하는 방법은 2가지가 있다.
방법1.
방법2.
내가 이렇게 Visual C++과 Borland C++을 혼용해서 사용하는 이유는 Borland C++은 UI를 구현하기가 너무 쉽고 화려하기 때문이다. 물론 UI쪽 개발 속도도 빠르다~. (Visual C++은 Win32 프로그래밍을 하려면 거의 필수니 장점 설명은 패스~)
이러한 방법은 아마도 많은 프로그래머들이 사용하고 있을 것이다.
비단 Borland C++만이 아닌 델파이나 펄등의 스크립트 언어 등등...
이 곳에서 내가 설명할 것은 제목에서와 같이 Borland C++(이하 BCB)과 Visual C++(이하VC)에서 DLL을 만들때 서로 교차사용할 수 있도록 해야 하는 설정?? 이다.
DLL로 만들어 교차 사용하기 위해서는 BCB나 VC에서 def파일만 추가하면 된다.
DLL을 만들때 아래와 같이 함수를 작성할 것이다.
그럼 def파일에는
이렇게 넣고 컴파일하면 끝~~이다. BCB와 VC모두 동일하다. (너무 간단하지 않은가??)
BCB에 익숙하지 않은 사람을 위해 추가 설명을 하자면.
BCB에서는 DLL을 만들때,
New -> DLL Wizard 선택
C++, VCL, VC++ Style DLL 체크해서 DLL프로젝트를 생성하면 되고.
빌드할때, VCL 컴퍼넌트를 사용했다면 프로젝트 설정에서
1. 'Packages'탭에서 Build with runtime packages 체크 해제.
2. 'C++'탭에서 Enable RTTI 체크 해제.
3. 'Linker'탭에서 Use dynamic RTL 체크 해제.
를 하고 빌드해야 한다.
주의사항으로는 BCB와 VC로 만든 DLL이 완벽하게 동작한다고는 말 할 수 없다는 것이다!!
그렇기 때문에 충분히 Test를 한 후에 프로젝트에 적용하길 바란다.
방법1.
Borland C++로 팝업창이나 설정창등의 다이얼로그 기반(혹은 폼이라고도 한다)의 UI을 DLL로 만든다.
Visual C++로 프로젝트를 만들때 설정창등을 띄울때 위의 DLL을 로드하여 윈도우를 띄워 정보를 입력 받는다.
(이때, 메인 프로젝트는 Visual C++로 작성한 프로젝트가 된다.)
이 방법은 화려한 UI가 필요없는 관리 프로그램같은 경우 즐겨 사용하는 방법이다.
(이때, 메인 프로젝트는 Visual C++로 작성한 프로젝트가 된다.)
이 방법은 화려한 UI가 필요없는 관리 프로그램같은 경우 즐겨 사용하는 방법이다.
방법2.
네트워크나 파일처리등의 기능을 Visual C++을 이용하여 DLL로 만든다.
Borland C++로 프로젝트를 만들고 UI를 구현할때 해당 기능은 위의 DLL을 로드하여 처리한다.
(이때, 메인 프로젝트는 Borland C++로 작성한 프로젝트가 된다.)
이 방법은 UI가 중요시되는 프로젝트인 경우 즐겨 사용하는 방법이다.
Borland C++로 프로젝트를 만들고 UI를 구현할때 해당 기능은 위의 DLL을 로드하여 처리한다.
(이때, 메인 프로젝트는 Borland C++로 작성한 프로젝트가 된다.)
이 방법은 UI가 중요시되는 프로젝트인 경우 즐겨 사용하는 방법이다.
내가 이렇게 Visual C++과 Borland C++을 혼용해서 사용하는 이유는 Borland C++은 UI를 구현하기가 너무 쉽고 화려하기 때문이다. 물론 UI쪽 개발 속도도 빠르다~. (Visual C++은 Win32 프로그래밍을 하려면 거의 필수니 장점 설명은 패스~)
이러한 방법은 아마도 많은 프로그래머들이 사용하고 있을 것이다.
비단 Borland C++만이 아닌 델파이나 펄등의 스크립트 언어 등등...
이 곳에서 내가 설명할 것은 제목에서와 같이 Borland C++(이하 BCB)과 Visual C++(이하VC)에서 DLL을 만들때 서로 교차사용할 수 있도록 해야 하는 설정?? 이다.
DLL로 만들어 교차 사용하기 위해서는 BCB나 VC에서 def파일만 추가하면 된다.
DLL을 만들때 아래와 같이 함수를 작성할 것이다.
extern "C" void __stdcall _Display(const char* pStrSrc, int nMode) {}
그럼 def파일에는
EXPORTS
;MSVC name = Borland name
_Display = _Display
;MSVC name = Borland name
_Display = _Display
이렇게 넣고 컴파일하면 끝~~이다. BCB와 VC모두 동일하다. (너무 간단하지 않은가??)
BCB에 익숙하지 않은 사람을 위해 추가 설명을 하자면.
BCB에서는 DLL을 만들때,
New -> DLL Wizard 선택
C++, VCL, VC++ Style DLL 체크해서 DLL프로젝트를 생성하면 되고.
빌드할때, VCL 컴퍼넌트를 사용했다면 프로젝트 설정에서
1. 'Packages'탭에서 Build with runtime packages 체크 해제.
2. 'C++'탭에서 Enable RTTI 체크 해제.
3. 'Linker'탭에서 Use dynamic RTL 체크 해제.
를 하고 빌드해야 한다.
주의사항으로는 BCB와 VC로 만든 DLL이 완벽하게 동작한다고는 말 할 수 없다는 것이다!!
그렇기 때문에 충분히 Test를 한 후에 프로젝트에 적용하길 바란다.
반응형
'이전포스트' 카테고리의 다른 글
[Tip] Doxygen을 사용하여 소스코드에서 레퍼런스 문서를 자동으로 만들자. (0) | 2010.03.03 |
---|---|
[Tip] SyntaxHighlighter - 블로그에 소스 코드를 보기 좋게 삽입해보자 (0) | 2010.03.03 |
[Tip] gdb의 간단한 사용법. (3) | 2010.02.23 |
내 생애 처음이었던 해외여행~~ (0) | 2010.02.19 |
내가 직업을 프로그래머로 선택한 이유... (0) | 2009.01.19 |