如何制作DLL接口及使用
2016-12-19 17:25
162 查看
lib(英文全称:library)分为两种:
静态库:这种lib中有函数的实现代码,一般用在静态链接上,它是将lib中的代码加入目标模块(exe或者dll)文件中,所以链接好了之后,lib文件就没有用了。
一种LIB是和DLL配合使用的,包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。这种LIB是用在静态调用DLL上的,所以起的作用也是链接作用,链接完成了,LIB也没用了。至于动态调用DLL的话,根本用不上LIB文件。
目标模块(EXE或者DLL)文件生成之后,就用不着LIB文件了。
那么如何制作dll并如何使用呢?
测试环境:VS2013 Visual C++
MakeDll:
1、新建项目->Win32项目(项目名称为MakeDll)->应用程序类型:DLL->完成
2、添加源文件MakeDll.cpp和头文件MakeDll.h
MakeDll.cpp
MakeDll.h
3、编译生成,在工程目录下就会生成Debug的目录,在Debug目录下生成我们所需要的dll和lib库
至此,我们已经完成了dll的制作。
UseDll:
使用Dll时,我们需要在制作dll时生成的MakeDll.dll和MakeDll.lib,以及MakeDll.h
1、新建项目->空项目(项目名称:UseDll)
2、在工程目录下新建include目录和lib目录,分别将MakeDll.h和MakeDll.lib拷贝至这两个目录下。
3、配置工程属性如下:
配置属性-> C/C++ -> 常规 :附加包含目录:.\include
配置属性->链接器 -> 常规 :附加库目录:.\lib
4、添加源文件main.cpp。
main.cpp
5、编译生成Debug目录(含exe),将MakeDll.dll拷贝至该目录下,便可运行。
参考博文:
VS2013创建dll动态链接库文件心得
例程下载:
如何制作DLL及使用
静态库:这种lib中有函数的实现代码,一般用在静态链接上,它是将lib中的代码加入目标模块(exe或者dll)文件中,所以链接好了之后,lib文件就没有用了。
一种LIB是和DLL配合使用的,包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。这种LIB是用在静态调用DLL上的,所以起的作用也是链接作用,链接完成了,LIB也没用了。至于动态调用DLL的话,根本用不上LIB文件。
目标模块(EXE或者DLL)文件生成之后,就用不着LIB文件了。
那么如何制作dll并如何使用呢?
测试环境:VS2013 Visual C++
MakeDll:
1、新建项目->Win32项目(项目名称为MakeDll)->应用程序类型:DLL->完成
2、添加源文件MakeDll.cpp和头文件MakeDll.h
MakeDll.cpp
// MakeDll.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "MakeDll.h" DLL_API int add(int a, int b) { return a + b; } Point::Point() { x = 0.0f; y = 0.0f; } void Point::SetPoint(float x, float y) { this->x = x; this->y = y; } void Point::DisPlay() { cout << "x= " << x << endl; cout << "y= " << y << endl; }
MakeDll.h
#define DLL_API __declspec(dllexport) #include<iostream> using namespace std; DLL_API int add(int a, int b); class DLL_API Point { private: float x, y; public: Point(); void SetPoint(float a, float b); void DisPlay(); };
3、编译生成,在工程目录下就会生成Debug的目录,在Debug目录下生成我们所需要的dll和lib库
至此,我们已经完成了dll的制作。
UseDll:
使用Dll时,我们需要在制作dll时生成的MakeDll.dll和MakeDll.lib,以及MakeDll.h
1、新建项目->空项目(项目名称:UseDll)
2、在工程目录下新建include目录和lib目录,分别将MakeDll.h和MakeDll.lib拷贝至这两个目录下。
3、配置工程属性如下:
配置属性-> C/C++ -> 常规 :附加包含目录:.\include
配置属性->链接器 -> 常规 :附加库目录:.\lib
4、添加源文件main.cpp。
main.cpp
#include <iostream> #include "MakeDll.h" //#define DLL_API __declspec(dllimport) //可注释 #pragma comment(lib,"MakeDll.lib") using namespace std; int main() { Point p1, p2; p2.SetPoint(5.6f, 7.8f); p1.DisPlay(); p2.DisPlay(); cout << "5+6 = " << add(5, 6) << endl; system("pause"); return 0; }
5、编译生成Debug目录(含exe),将MakeDll.dll拷贝至该目录下,便可运行。
参考博文:
VS2013创建dll动态链接库文件心得
例程下载:
如何制作DLL及使用
相关文章推荐
- 如何使用不同dll的相同namespace下的相同接口
- 如何在VC.NET中制作并使用动态链接库DLL
- 如何使用不同dll的相同namespace下的相同接口
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表
- 使用Object Pascal中的接口访问Visual C++ DLL中的对象
- 如何使用InstallShield8.0制作自己的安装程序
- 在symbian中如何使用MP3DecodeDLL播放MP3
- 对使用Delphi制作DLL复用文件的建议
- 如何使用InstallShield8.0制作自己的安装程序
- 如何使用基于接口的Remote Objects的配置文件
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二节 获取MIB-II 接口表
- 在symbian中如何使用MP3DecodeDLL播放MP3
- 如何在C++ Builder的DLL中使用数据库控件
- 如何使用InstallShield8.0制作自己的安装程序
- 如何删除正在使用中的dll文件
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十四节 返回本机网络接口数量
- 如何使用基于接口的Remote Objects的配置文件
- 如何制作和使用帮助文件
- 如何使用cdosys.dll实现发送邮件
- 如何使用ASP制作类似安装向导的页面?