lib와 dll의 관계

6910 단어
   lib  ,lib dll        

(1)lib       ,dll       。

           , lib   。

               , dll   。

        ,      。

(2)         lib   dll  。lib                   , dll            。   dll  ,     lib           ,      dll   。    lib  ,    lib          ,         。     lib     :                。     ,           ,            ,      ,             。

(3)        ,     ,      (.LIB)  ,   DLL  ,        DLL           ,DLL          ,      LIB           DLL  ,                   ,              ,             ,  DLL             ,                                  ,         。          ,DLL .LIB             ,            。

 、     dll           

  1、   dll       

     dll                  .h  。         dll ,                  。    

  2、   dll          

    dll   、          。              dll ,            。  ,dll    。    

  3、   dll  (.dll)    

            dll   ,        。dll     、     ,.dll     。              ,    .exe   .dll  ,   .lib   dll   。
          (DLL)               。           ,                   。             DLL  ,  DLL            、                  。DLL            。                 DLL      。 

                    :           (.dll     .exe   )          DLL              。      ,                   ,                。 
                     。DLL     ,      ,      ,     ,      ,     MFC      ,       ,             。 

lib dll            

dll      

lib DLL



    C++          ,         ,            ,      。          lib DLL     。

      C++  ,        ,            

int main(){return 0;}

  ,         。

          ,                  ,  ,      main       :

#include <stdio.h>

int main()

{

printf("Hello World!
"); return 0; } , , , : #include <stdio.h> void ShowHello() { printf("Hello World!
"); } int main() { ShowHello(); return 0; } , , , // main.cpp void ShowHello();//[1] int main() { ShowHello(); return 0; } // hello.cpp #include <stdio.h> void ShowHello() { printf("Hello World!
"); } VC , , 。 VC , --------------------Configuration: hello - Win32 Debug-------------------- Compiling... main.cpp hello.cpp Linking...  hello.exe - 0 error(s), 0 warning(s) 。 , , , , , : , lib , , lib , 。 VC static library , hello.cpp , , lib , hello.lib。 lib : 1  -〉link-〉Object/Library Module hello.lib 2  #pragma comment(lib, "hello.lib") C++ , , hello.lib 。 lib , obj 。obj cpp , ,lib obj , cpp obj , lib obj, , , link, , , 。 , lib EXE DLL 。 lib, , , lib, obj , , DLL 。 lib DLL 。 DLL, , DLL , , 。 , DLL EXE : 1 EXE main WinMain, DLL DllMain 2 EXE , , , DLL , , DLL , DLL [2], DLL , DLL ,DLL DLL EXE 。 DLL EXE main.cpp hello.cpp , , 。 DLL , VC , , , 。 : #ifdef DLL_EXPORTS #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif 。 DLL DLL_EXPORTS, DLL_API , DLL , 。 , 。 , DEF ,DEF , , , [4] DLL : , Windows API LoadLibrary GetProcAddress [5], GetProcAddress , DLL DEF , ( :?fnDll@@YAHXZ) , C++ , DEF , 。 , DLL , , , DLL 。 DLL, , __stdcall __cdecl , WINAPI , , , , , , 。 , 。 。 : void foo(string& str) { str = "hello"; } int main() { string str; foo(str); printf("%s
", str.c_str()); return 0; } foo main , foo , , foo DLL , , [6]。 “ ”,DLL EXE , foo , main return ,string 。 , DLL , , 。 , DLL -- API , : CreateDC ReleaseDC , , 。 , ? , , , 。 , 。 [1]: , , 。 [2]:  DLL , 。 [3]:DEF , DEF , ATL COM 。 [4]: , , , , 。 [5]: MSDN。 [6]: , , DLL ,
.h         ,  math.h      :
int abs(int);
        
#include <math.h>
...abs(3,5);
            。

.dll      ,   SetWindowText()   ,   user32.dll      。DLL                            。

.lib      ,          (   .obj)      (   .exe)   ,   .lib      
     (   DLL    )     ,     lib     ,   SetWindowText()         
   user32.lib  。(.lib             )
 
      【http://lixiangtao2002.blog.163.com/blog/static/1819294772011211112731419/】

좋은 웹페이지 즐겨찾기