首页 > 代码库 > DLL的创建和使用

DLL的创建和使用

 1 #ifndef MYDLL_H
 2 #define MYDLL_H
 3 
 4 #ifdef DLL_IMPLEMENT_
 5 #define DLL_APL __declspec(dllexport)
 6 #else
 7 #define DLL_API __declspec(dllimport)
 8 #endif
 9 
10 //导出函数接口
11 extern "C"
12 {
13     int DLL_API add(const int &a, const int &b);
14     int DLL_API sub(const int &a, const int &b);
15     int DLL_API mul(const int &a, const int &b);
16     int DLL_API div(const int &a, const int &b);
17 }
18 
19 
20 //导出类
21 class __declspec(dllexport) CPreson  
22 {  
23 private:  
24     char szName[128];  
25     int age;  
26 public:  
27     CPreson();  
28     ~CPreson();  
29     CPreson(char* lpName,int nAge);  
30 public:  
31     char *GetName();  
32     int GetAge();  
33 }; 
34 
35 #endif
 1 // mydll.cpp : 定义 DLL 应用程序的导出函数。
 2 //
 3 #define DLL_IMPLEMENT_
 4 #include "stdafx.h"
 5 #include "mydll.h"
 6 
 7 int add(const int &a, const int &b)
 8 {
 9     return a + b;
10 }
11 
12 int sub(const int &a, const int &b)
13 {
14     return a - b;
15 }
16 
17 int mul(const int &a, const int &b)
18 {
19     return a * b;
20 }
21 
22 int div(const int &a, const int &b)
23 {
24     return a / b;
25 }
26 
27 
28 CPreson::CPreson()
29 {
30 
31 }
32 
33 CPreson::CPreson(char* lpName,int nAge)
34 {
35     this->age=nAge;  
36     if (lpName)  
37     {  
38         int len = strlen(lpName);  
39         if (len>127)  
40             len=127;  
41         memcpy(this->szName,lpName,len);  
42         this->szName[len] = 0;  
43     }  
44 }
45 
46 char * CPreson::GetName()
47 {
48     return szName; 
49 }
50 
51 int CPreson::GetAge()
52 {
53     return age;
54 }
55 
56 CPreson::~CPreson()
57 {
58 
59 }
 1 
//测试dll
// TestMyDll.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include "mydll.h" 6 #include <iostream> 7 using namespace std; 8 9 int _tmain(int argc, _TCHAR* argv[]) 10 { 11 /*int a, b; 12 char c;*/ 13 //while( cin >> a >> c >> b ) 14 //{ 15 // switch( c ) 16 // { 17 // case ‘+‘: 18 // cout << add(a, b) << endl; 19 // break; 20 // case ‘-‘: 21 // cout << sub(a, b) << endl; 22 // break; 23 // case ‘*‘: 24 // cout << mul(a, b) << endl; 25 // break; 26 // default: 27 // cout << ‘\"‘ << a << c << b << ‘\"‘ << "isn‘t a valid expression." << endl; 28 // } 29 //} 30 31 CPreson person("zhang",23); 32 cout<<person.GetName()<<endl; 33 system("pause"); 34 return 0; 35 }

 

DLL的创建和使用