第二篇:简单的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 }