原來一直使用vc6.0做開發,但是公司主要使用vs2008工具,剛開始使用的時候感覺非常不好用,但是一週下來,不禁感嘆,還是新的好啊,嘿嘿!
這裏總結一下vs2008下創建dll並使用dll導出函數的方法,當然方法還有很多,找出一個自己比較習慣的方法就好!
一:生成DLL
1:創建DLL工程
文件->新建->項目->visual c++->win32->win32控制檯應用程序(win32項目也可以)
填寫項目名稱MyDLL->確定->下一步->DLL(附加選項 對空項目打鉤)->完成。
到這裏DLL工程就創建完畢了,下面新建兩個文件MyDLL.cpp和MyDLL.h。
MyDLL.cpp內容如下:
- #include <iostream>
- using namespace std;
- #include "MyDLL.h"
- int Add(int &a,int &b)
- {
- return a+b;
- }
MyDLL.h內容如下:
- #pragma once
- #define DLL_EXPORT __declspec(dllexport)
- extern "C" DLL_EXPORT int Add(int &a,int &b);
點擊生成,則dll文件就生成了,vs2008不能直接生成lib文件,這個時候就需要我們在建立dll工程的時候 再新建一個def文件,默認生成然後重新生成就能夠得到lib文件了
2:調用DLL文件導出的接口函數
vs2008這個IDE非常好用,我們這裏玩一下,在上面創建的DLL工程中,再新建一個項目來直接調用DLL導出函數。
右鍵解決方案->添加->新建項目->建立一個空的常規工程 testMyDLL,下面新建兩個文件testMyDLL.cpp和testMyDLL.h
testMyDLL.cpp內容如下:
- #include "testMyDLL.h"
- #pragma comment(lib,"..\\debug\\MyDLL.lib")
- #include <iostream>
- using namespace std;
- int main()
- {
- int a =3;
- int b =2;
- cout<<Add(a,b)<<endl;
- getchar();
- }
testMyDLL.h內容如下:
- #pragma once
- #define DLL_EXPORT __declspec(dllexport)
- extern "C" DLL_EXPORT int Add(int &a,int &b);
這裏需要注意testMyDLL.cpp文件中調用lib的這句話:
- #pragma comment(lib,"..\\debug\\MyDLL.lib")
這裏需要指明lib所在的文件夾,當然我們也可以在生成dll的MyDLL工程中,指定lib和dll文件的輸出路徑,直接到testMyDLL工程下。
注:dll文件的操作有很多方法,待以後豐富。。。