[구 블로그] 동적 라이브러리의 동적 연결과 정적 연결

DLL(동적 링크 라이브러리)그러나 dll는 동적 링크와 정적 링크로 나뉜다.
정적 링크는lib를 내보내기 함수 헤더로 dll를 불러오는 것을 의미하며, 이러한 동적 라이브러리는 컴파일을 불러오면 실행 프로그램의 초기에 dll 파일을 사용할지 여부를 판단합니다
 
/*test.cpp*/
#ifdef      __cplusplus
#define     EXPORT extern "C" __declspec (dllexport)
#else
#define     EXPORT __declspec (dllexport)
#endif
EXPORT      long sum(int a, int b)
{
return a+b;
}
#ifdef      UNICODE
                  lib     dll    
      
 
#pragma comment(lib, “test.lib”)//lib   
#ifdef      __cplusplus
#define     IMPORT extern "C" __declspec (dllimport)
#else
#define     IMPORT __declspec (dllimport)
#endif
EXPORT      long sum(int a, int b);
  ,                。
 
        dll,          dll             。          lib   dll,
/*    dll*/
           typedef long(__cdecl *TESTDLL)(int a, int b);
           HINSTANCE hmod;
           /*     */
           hmod = ::LoadLibrary("test.dll");
           if (hmod == NULL)
           {
              AfxMessageBox("Fail");
           }
           TESTDLL lpproc;
           lpproc = (TESTDLL)GetProcAddress(hmod, "sum");
           if (lpproc != (TESTDLL)NULL)
           {
                /*         */
                long result = (*lpproc)(cd)(1, 2);
                      result          。
           }
  FreeLibrary(hmod);
  }
 
             ,               。
       ,         ,           ,        ,         。         ,   lib     ,        dll  ,                           。

좋은 웹페이지 즐겨찾기