제임스딘딘의
Tech & Life

개발자의 기록 노트/C++ MFC

MFC 재배포 DLL

제임스-딘딘 2011. 6. 16. 16:12

MFC 재배포 DLL

간단한 MFC용 ODBC을 배포하려고 하는데 필요한 DLL을 확인해보았습니다.

프로젝트 형식은 [Win32]-[Win32 콘솔 응용 프로그램]이고

템플릿 마법사(응용 프로그램 설정)에서 추가 옵션에 '미리 컴파일된 헤더'에 체크 및
공용 헤더 파일 추가 대상에 'MFC' 에 체크하였습니다.

 

미리 컴파일된 헤더(PCH) 헤더 파일인 stdafx.h에 TODO 부분에

  1. #include <afxdb.h> // MFC ODBC

를 추가하고

 

main함수가 있는 cpp 파일에

  1. CDatabase db;
    BOOL res = db.OpenEx(TEXT("~~~~));   // ~~~~부분에는 ODBC 연결 문자열이 들어갔습니다.
    if(res) {
        db.ExecuteSQL(TEXT("Insert into ABBA.dbo.user_info (id, name) values ('1', 'value');"));
    }

를 하여 Insert문을 수행하였습니다.

 

Release 모드에서 빌드를 하고(속성의 C/C++의 '코드 생성'부분의 런타임 라이브러리는 /MD로 되어 있습니다.)

런타임 라이브러리 사용 지정 방법은 MSDN의 /MD, /MT, /LD (Use Run-Time Library)를 참고하세요.


 필요한 DLL들

mfc90u.dll - MFC의 CDatabase 클래스를 사용했기 때문에 DLL에서 사용할 수 있게

msvcr90.dll - /MD 옵션으로 코드생성을 하게 되면 C Run-Time 라이브러리로 이 DLL이 필요합니다.

(참고로 VS 2008에서 개발을 할 때의 경우입니다. VS 2005라면 90대신 80이라는 숫자가 붙습니다)

 

MSDN의 C Run-Time Libraries를 보면 표준 C++ 라이브러를 사용했을 경우에 msvcp90.dll 이 필요하다고 하네요.

 배포할 DLL은 어디서 구하나?

VS2008을 설치할 때 경로를 바꾸지 않았다면

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist 에 배포용 파일이 있다.

x86기반과 amd64, 디버그용 배포하지 말아야할 카테고리 3가지 폴더 아래 파일이 있다.

 
네이트온의 배포 DLL

NATEON 4.0.10.4(1481)을 기준으로 아래와 같은 dll 파일들이 배포가 된다.

(위치 : C:\Program Files\NATEON\BIN)

 nateon4.png

DIR 한 목록

2004-08-24  오후 11:14           640,000 dbghelp.dll
2005-06-28  오전 10:14           356,352 MWDatabase.dll
2005-06-28  오전 10:14           286,773 MSVCRT.DLL
2005-10-07  오전 02:17           258,352 unicows.dll
2005-10-18  오전 06:20           118,272 t2embed.dll
2006-12-01  오후 10:03           626,688 msvcr80.dll
2006-12-01  오후 10:03           548,864 msvcp80.dll
2007-03-02  오후 08:34            61,440 NateOnHook40u.dll
2007-04-04  오후 11:18           126,976 NateMessengerApiActiveX.dll
2008-08-06  오후 04:35            61,541 XecureCSP.dll
2008-08-06  오후 04:35           393,302 XecureCrypto.dll
2008-08-06  오후 04:35            41,059 XecureIO.dll
2009-08-03  오후 01:15            77,824 NateOnUnhandledExceptionFilter.dll
2009-10-19  오후 05:14           278,528 CKAppEx.dll
2010-05-07  오후 01:49           159,744 libCommonDlg_DLL.dll
2010-05-07  오후 01:49         1,052,672 NateOnResDLL_KOR.dll
2010-05-07  오후 01:49           438,272 SLDB.dll
2010-05-07  오후 01:49           561,152 SRControl.dll
              18개 파일           6,087,811 바이트

msvcr80.dll과 msvcp80.dll을 보면 VS 2005로 개발된 것을 알 수 있다.