DLL生成和引用

下面给大家讲关于动态链接库(Dynamic Link Library),简称DLL。DLL是一个包含可由多个程序同时使用的代码和数据库。它允许程序共享执行特殊任务所必需的代码和其他资源,一般来说,DLl是一种磁盘文件,以.dll、.DRV、.FON、.SYS和许多以.EXE为扩展名的系统文件都可以是DLL。它由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,成为调用进程的一部分。DLL的调用可以分为两种:一种是隐式调用,另一种是显示调用。这里简单分享DLL的两种调用方法。
首先讲隐式的调用:这种调用方式需要把产生动态链接库时产生的.LIB文件加入到应用程序的工程中,在使用DLL中的函数时,只须说明一下后就可以直接通过函数名调用DLL的输出函数,调用方法和程序内部其他的函数是一样的。隐式调用不需要调用LoadLibrary()和FreeLibrary()。程序员在建立一个DLL文件时,链接程序会自动生成一个与之对应的LIB导入文件。该文件包含了每个DLL导出函数的符号名和可选的标识号,但是并不含有实际的代码。LIB文件作为DLL的替代文件被编译到应用程序项目中。
当通过隐式调用方式编译生成应用程序时,应用程序中的调用函数与LIB文件中导出符号相匹配,这些符号或标识号被写入到生成的EXE文件中。LIB文件中也包含了对应的DLL文件名(但不是完全的路径名),链接程序也将其存储EXE文件内部。当应用程序运行过程中需要加载DLL文件时,Windows根据这些信息发现并加载DLL,然后通过符号名或标识号实现对DLL文件函数的动态链接。所有被应用程序调用的DLL文件都会在应用程序EXE文件加载在到内存中。
另一种显式调用:这种调用方式是指在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来,并指定DLL的路径作为参数。LoadLibrary返回HINSTANCE参数,应用程序在调用GetProcAddress函数时使用这一参数。当完成对动态链接库的导入以后,再使用GetProcAddress()获取想要引入的函数,该函数将符号名或标识号转换为DLL内部的地址,之后就可以象使用本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库。
需要找到相应的DLL文件;例如图下:
DLL生成和引用_第1张图片
然后我们可以在解决方案中可以进行添加新的引用;弹窗可以进行搜索,搜索没有可以在右下角的浏览可以添加DLL文件;添加引用完了,我们可以在属性中可以查看它的DLL存放路径的具体位置。如下图:
DLL生成和引用_第2张图片
注册DLL文件:找到相应的程序集名称进行配置
分别添加你的程序集合命名空间的名称。如图:
DLL生成和引用_第3张图片

你可能感兴趣的:(DLL生成和引用)