VS制作调用动态库dll的详细步骤.doc

上传人:土8路 文档编号:9951970 上传时间:2021-04-06 格式:DOC 页数:14 大小:2.02MB
返回 下载 相关 举报
VS制作调用动态库dll的详细步骤.doc_第1页
第1页 / 共14页
VS制作调用动态库dll的详细步骤.doc_第2页
第2页 / 共14页
VS制作调用动态库dll的详细步骤.doc_第3页
第3页 / 共14页
VS制作调用动态库dll的详细步骤.doc_第4页
第4页 / 共14页
VS制作调用动态库dll的详细步骤.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《VS制作调用动态库dll的详细步骤.doc》由会员分享,可在线阅读,更多相关《VS制作调用动态库dll的详细步骤.doc(14页珍藏版)》请在三一文库上搜索。

1、VS2010制作DLL的详细步骤(DllMake.dll)1. 文件-新建-项目(如下图所示)2. 选择Visual C+Win32Win32项目后,在名称中输入DllMake;解决方案名称自动为DllMake(可修改);选中为解决方案创建目录(如下图所示)3. 项目(DllMake)右键-添加-新建项-选择头文件(.h)-名称输入为Dllmake4. 在新建的DllMake.h头文件中输入以下代码(如下图所示)5. 在DllMake.cpp文件中输入以下代码(如下图所示)6. 注意:在头文件DllMake.h中extern “C” 只是解决了c与c+编译器之间的兼容问题,如果需要和其他编译器

2、之间兼容,可靠的办法还是增加一个.def文件。源文件-右键-添加-新建项-7. 在dllmake.def文件中输入以下代码(如下图所示)- 如果需要和其他编译器之间兼容,可靠的办法还是增加一个.def文件。8. 最后DllMake项目上右键-生成(Debug)。便可以在项目的Debug文件内产生如下文件。(如下图所示)9. 也可以在DllMake项目上右键-生成(Release)。便可以在项目的Release文件内产生如下文件。(如下图所示)VS2010调用DLL的详细步骤(CallDll)1. 新建-项目(如下图所示)2. 在CallDll.cpp中输入如下代码。(如下图所示)/ CallD

3、ll.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include /包含Windows.h头文件#include /包含isotream头文件#include /包含string头文件 /包含所有需要用到的头文件xxxx.h或是xxxxusing namespace std; /定义命名空间std/根据动态库提供的头文件定义函数指针(存放DLL返回的对应函数接口)typedef int(*lpAdd)(int x,int y); /定义Add函数指针 typedef int(*lpMax)(int x,int y); /定义Max函数指针typedef int

4、(*lpDivision)(int x,int y); /定义Division函数指针typedef void(*lpPrintFunc)(int x,int y); /定义PrintFunc函数指针int _tmain(int argc, _TCHAR* argv)HINSTANCE hInstance; /定义动态库句柄变量lpAdd callAdd; /定义Add函数指针变量lpMax callMax; /定义Max函数指针变量lpDivision callDivision; /定义Division函数指针变量lpPrintFunc callPrintFunc; /定义PrintFunc

5、函数指针变量int inputX,inputY; /存储变量X,Y输入值int result; /存储函数返回值hInstance=LoadLibrary(_T(DllMake.dll); /装载动态链接库if(hInstance!=NULL) /装载动态链接库成功callAdd=(lpAdd)GetProcAddress(hInstance,Add); /获取动态库中Add函数地址callMax=(lpMax)GetProcAddress(hInstance,Max); /获取动态库中Max函数地址callDivision=(lpDivision)GetProcAddress(hInstan

6、ce,Division);/获取动态库中Division /函数地址 callPrintFunc=(lpPrintFunc)GetProcAddress(hInstance,PrintFunc); /获取动态库中 /PrintFunc函数地址 coutinputX;coutinputY;if (callAdd!=NULL)result=callAdd(inputX,inputY);coutAdd=resultendl;if (callMax!=NULL) result=callMax(inputX,inputY);coutMax=resultendl;if(callDivision!=NULL

7、)result=callDivision(inputX,inputY);coutDivision=resultendl;if(callPrintFunc!=NULL)callPrintFunc(inputX,inputY);FreeLibrary(hInstance); /卸载动态库else /装载动态链接库失败cout没有找到动态链接库DllTest.dllendl;system(pause);return 0;3. 在CallDll项目上右键-生成-运行程序。(如下图所示)4.根据上面的运行结果可知,控制台程序找不到动态库(DllMake.dll)。这是因为在项目的Debug文件夹中没有(DllMake.dll)文件。如下图所示5.将用户制作的动态库文件(DllMake.dll)拷贝到Debug文件夹下面即可。如下图所示:6.双击CallDll.exe,程序正常运行,如图所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1