第二篇:简单的win32的dll程序

新建一个Win32 Dynamic-Link Library静态链接库文件

003.h文件

 

1 //003.h文件
2 #ifndef LIB_H   //如果没有定义这个LIB_H
3 #define LIB_H    //那么定义
4 extern "C"  int __declspec(dllexport) TianPan(int x,int y);
5 #endif /*LIB_H*/

 

003.cpp文件

1 //003.cpp文件
2 #include "003.h"//包含头文件
3 #include <iostream>//包含输入输出流文件
4 using std::cout; //释放命名空间的一个成员
5 int TianPan(int x,int y)
6 {
7     cout<<"田攀爱张颖,GoodLuck!\n";//输出一段话
8     return x + y;//返回一个值
9 }

通过上面,我们就写好了dll的源文件了,编译之后,生成一个003.dll的文件。

 

我们现在写一个程序来调用它,新建一个Win32控制台程序

 

 1 #include <iostream>        //输入输出流
 2 using namespace std;    //释放命名空间
 3 #include <windows.h>    //包含了windows的一系列东东
 4 
 5 typedef int ( * MyFuncTion)(int,int);//自己定义一个函数,返回值和参数要和dll里面的一样
 6 
 7 void main()//主函数
 8 {
 9     HINSTANCE hDll;         //DLL句柄    
10     MyFuncTion TianPan;  //定义一个函数指针TianPan,类型是dll里面的函数类型
11     hDll = LoadLibrary("..\\003\\Debug\\003.dll");//加载DLL,括号内容为dll路径
12 //  hDll = LoadLibrary("D:\\VC生成目录\\003\\Debug\\003.dll");//加载DLL,括号内容为dll路径
13     if (hDll != NULL)
14     {
15         TianPan = (MyFuncTion)GetProcAddress(hDll,"TianPan");    
16         if(TianPan!=NULL)//如果函数存在
17         {
18             cout<<"调用DLL函数:"<<TianPan(2,3)<<endl;    
19         }
20         else
21         {
22             cout<<"DLL文件里面没有找到对应的函数名!\n";
23         }
24         FreeLibrary(hDll);//关闭dll文件
25     }    
26     else
27     {
28         cout<<"没有找到DLL文件!\n";
29     }
30 }

 

 

 

 

 

 

 

 

 

 

posted @ 2013-08-02 15:13  GOD攀  阅读(170)  评论(0编辑  收藏  举报