動態庫調用(C++)問題

.dll  該文件不用多說

.lib  C++靜態編譯時須要  不然會編譯出錯    除非是測試客戶端:創建了依賴關係  編譯時會本身生成  
      #pragma comment(lib,"..\\Release\\DllKmeans.lib")
 
.h   若是沒有該文件  須要本身導入函數  不然找不到函數聲明
     #define DllImport extern "C" _declspec(dllimport)
     DllImport bool InitializeMlDll(); 
 
     與之對應的生成方式(被調用端)    若是說是無法使用.h的平臺  好比C#  
         #define DllExport extern "C" __declspec(dllexport)函數

         DllExport bool InitializeMlDll() { }測試

 

 

使用MFC編寫的DLL,能夠分紅兩大類:spa

    規則DLL——規則(regular)DLL中所包含的函數,能夠被全部Windows應用程序使用;it

         共享MFC——DLL中不包含MFC庫函數,須要另外安裝MFC動態連接庫後才能使用;io

         靜態MFC——DLL中包含MFC庫函數,能夠脫離MFC動態連接庫獨立使用。編譯

    擴展DLL——擴展(extensionDLL中所定義的類和函數,只能被所MFC應用程序使用import

           並且擴展DLL中不能包含MFC庫函數,也須要另外安裝MFC動態連接庫後才能使用。擴展

相關文章
相關標籤/搜索