메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

C/C++/MFC

간단한 MFC 용 라이브러리(lib,dll)를 만들어 사용해 보자.


사용 툴 : VS2003, VC7.0

프로젝트명 : WATCalDll

내용 : plus 라는 함수명을 가진 라이브러리는 만들고,

         그 라이브러리는 다른 프로그램에서 사용해 본다.

소스 : WATCalDll_src.zip

실행 파일 : WATCalDll.zip


Library 만들기

[새 프로젝트] => [Visual C++ 프로젝트] => [MFC] => [MFC 확장 DLL]

로 새 프로젝트 생성한다.


몇 개의 파일이 생성되는데, 그중에서 2군데만 수정하면 된다.

  • WATCalDll.cpp 파일에
  1. AFX_API_EXPORT int plus(int d1,int d2){
        return d1+d2;
    }


  • WATCalDll.def 파일에

    plus 한줄을 추가한다.(plus 함수를 외부에서 사용할 수 있게 선언해 주는 것이다.)

  1. ; WATCalDll.def : DLL에 대한 모듈 매개 변수를 정의합니다.

    LIBRARY         "WATCalDll"

    EXPORTS
        HttpExtensionProc
        GetExtensionVersion
        TerminateExtension
        plus



Library 사용하기

FormView 나 Dialog 를 사용하여 간단한 테스트를 할수 있다.

소스는 아래와 같다.


  1. void CWATCalAppView::OnBnClickedButton1()
    {
        HINSTANCE hDll;

        hDll=LoadLibrary("..\\WATCalDll\\debug\\WATCalDll.dll"); // (개발중인) 라이브러리 호출
        if(!hDll)
        {
            //  혹시 개발중인 라이브러리가 없을 경우 같은 폴더에서 읽어 온다.
            hDll=LoadLibrary("WATCalDll.dll");
        }

        typedef int (*WatLibPlusFunc)(int d1,int d2);
        WatLibPlusFunc watLibPlus;
        watLibPlus=(WatLibPlusFunc)GetProcAddress(hDll,"plus");

        int aa =watLibPlus(11,33);
        CString strTemp;
        strTemp.Format("sum = %d",aa);
        MessageBox(strTemp);
        FreeLibrary(hDll);
    }

<결과 창>
라이브러리1.JPG

관련 문서가 검색되었습니다.
  1. [2013/11/26] MSVCR110.dll , MSVCR100.dll오류 by WhiteAT (17699) *2
  2. [2012/11/13] ZEO 모듈이란? by WhiteAT (6394)
  3. [2010/12/29] 03_VC6.0 테트리스 만들기 - 벽돌(Shape)만들기 by WhiteAT (27847) *2
  4. [2010/10/04] C#, DLL 만들어 using으로 사용하기 #2 by WhiteAT (18419)
  5. [2010/10/04] C#, DLL 만들어 using으로 사용하기 #1 by WhiteAT (19078)
  6. [2010/08/25] 클래스를 배열로 묶어 사용하기 by WhiteAT (19868)
  7. [2010/01/30] BUTTON 버튼색 변경하기 by WhiteAT (37690)
  8. [2010/01/23] 기본적인 Button 사용하기 by WhiteAT (13574)
  9. [2009/06/14] OnKeyDown 에서 Ctrl, Shift, Alt 눌러졌는지 확인하는 방법 by WhiteAT (24221)
  10. [2009/02/03] WM_DEVICECHANGE in MFC by WhiteAT (17873)