1. 程式人生 > >學習使用C++封裝DLL並呼叫

學習使用C++封裝DLL並呼叫

一、生成DLL

VS2013——建立win32專案——DLL——完成

  1. //maopao.cpp
  2. #include "stdafx.h"
  3. //關鍵在於加入這一句,意為將C語言下的程式匯出為DLL
  4. extern"C"_declspec(dllexportvoid maopao(int *p,int count);  
  5. void maopao(int *p,int count)  
  6. {  
  7.       int temp=0;  
  8.       for(int i=1;i<count;i++)  
  9.       {  
  10.           for(int j=count-1;j>=i;j--)  
  11.         {  
  12.             if(p[j]>p[j-1])  
  13.             {  
  14.                 temp=p[j];  
  15.                 p[j]=p[j-1];  
  16.                 p[j-1]=temp;  
  17.             }  
  18.         }  
  19.       }  
  20. }  
編譯生成,在Debug檔案下生成了.dll和.lib兩個檔案;

二、呼叫DLL

VS2013——建立win32控制檯專案——完成

把第一步生成的.dll和.lib兩個檔案拷入控制檯程式的Debug資料夾下

新增引用:

專案——屬性——連結器——常規——附加庫目錄——新增dll

專案——屬性——連結器——輸入——附加依賴項——新增lib

  1. #include<iostream>
  2. #include<time.h>
  3. usingnamespace std;  
  4. //將export改為import即匯出變匯入即可
  5. extern"C"_declspec(dllimportvoid maopao(int *p,int count);  
  6. int main()  
  7. {  
  8.   int a[10];  
  9.   srand(time(0));  
  10.   for(int i=0;i<10;i++)  
  11.       a[i]=rand()%50;  
  12.   maopao(a,10);  
  13.    for(int i=0;i<10;i++)  
  14.        cout<<a[i]<<endl;  
  15.    getchar();//為方便除錯
  16.    return 0;  
  17. }