創建動態鏈接庫Dll及測試用例
我們就從新建工程開始:
(1)打開VS2010,文件->新建->項目,選擇Win32項目
(2)工程名叫做“Win32Dll”,在點擊確定后彈出的對話框中選擇Dll這一項,并勾選導入符號選項,點擊完成
這樣一個創建Dll的工程就做好了,其實Dll的編寫就是類的一種封裝,格式完全可以按照C++中類的寫法去完成,下面我改寫了另一個老兄的例子:
1.在Win32Dll.h中的類CWin32Dll 里添加:
class WIN32DLL_API CWin32Dll { public: CWin32Dll(void); // TODO: 在此添加您的方法。 private: int m_nVar; std::string m_strVar; public: void set(int ); void printfValue(); void set_str(const std::string &); void printf_str(); }; extern WIN32DLL_API int nWin32Dll; //這里尤其要注意,當你想創建一個非成員函數時 WIN32DLL_API void printfValue(const int &); WIN32DLL_API int fnWin32Dll(void); |
2.以上類中尤其要注意非成員函數的的聲明,之后便是在Win32Dll.cpp中的函數實現
CWin32Dll::CWin32Dll() { return; } void CWin32Dll::set(int v) { m_nVar = v; } void CWin32Dll::printfValue() { std::cout << m_nVar << std::endl; } void CWin32Dll::set_str(const std::string &str) { m_strVar = str; } void CWin32Dll::printf_str() { std::cout << m_strVar << std::endl; } void printfValue(const int &v) { std::cout << v << std::endl; } |
以上工作都做完后,進行編譯鏈接,在工程Debug下就可以看到我們生成的.Dll文件和.lib文件
3.在同一個解決方案里新建一個Win32控制臺項目名叫TestWin32Dll
在這里我們要用到我們在上個工程中生成的庫文件
如下是TestWin32Dll.cpp中的實現:
#include "stdafx.h" #include "../Win32Dll/Win32Dll.h" #pragma comment(lib,"D:/My Documents/Visual Studio 2010/Projects/Win32Dll/Debug/Win32Dll.lib") int _tmain(int argc, _TCHAR* argv[]) { int v = 12; printfValue(v); CWin32Dll obj; obj.set(v); obj.printfValue(); CWin32Dll obj2; obj2.set_str("haha"); obj2.printf_str(); CWin32Dll obj3; obj3.set_str("nono"); obj3.printf_str(); return 0; } |
運行一下試試!
posted on 2014-06-25 11:23 順其自然EVO 閱讀(218) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄