现在位置: 首页 > dll
2012-08-02 08:44 工业·编程 ⁄ 共 8679字 暂无评论
    自从微软推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是Windows操作系统的基础。动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数。只有在其它模块调用动态链接库中的函数时,它才发挥作用。     Windows API中的所有函数都包含在DLL中。其中有3个最重要的DLL,Kernel32.dll,它包含用于管理...
阅读全文
2012-08-01 05:15 工业·编程 ⁄ 共 3808字 暂无评论
1. 动态链接之含义 在链接应用程序时常使用所谓“静态链接”的方法,即将各个目标文件(.obj)、运行时函数库(.lib)以及已编译的资源文件(.res)链接到一起,形成一个可执行文件(.exe)。使用静态链接时,可执行文件需要使用的各种函数和资源都已包含到文件中。这样做的缺点是对于多个程序都使用的相同函数和资源要重复链接到exe文件中,使程序变大、占用内存增加。 “动态链接”是将一些公用的函数或资源组织成动态链接库文件(.dll),...
阅读全文
2012-08-01 03:55 工业·编程 ⁄ 共 5083字 暂无评论
    较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序的EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的EXE程序时,在每次修改重建时都必须调整编译所有源代...
阅读全文
    SDK是 Software Development Kit 的缩写,即“软件开发工具包”。 它是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。具体到Windows程序开发,我们下面只讨论广义 SDK 的一个子集——即开发Windows 平台下的应用程序所使用的SDK。     为了解释什么是 SDK 我们不得不引入 API、动态链接库、导入库等等概念。     API ...
阅读全文
2012-08-01 03:45 工业·编程 ⁄ 共 5954字 暂无评论
    动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。 1、引言 动态库(Dynam...
阅读全文
DLL的动态链接有两种方法。一种是加载时动态链接(Load_time dynamic linking)。Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径。 前天看到这几句,突然设计出一道自认绝妙的笔试题: "如果采用加载时动态链接的方式,Windows搜索要装入的DLL采用怎样的顺序?" 这个是基础题,估计你很容易答出(答案就是上面的)。呵呵,我还有后着呢...
阅读全文
2012-07-11 22:51 工业·编程 ⁄ 共 5124字 暂无评论
    动态链接库 (DLL)是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL副本的内容。 1 DLL基本编程原理分析 一般来说,DLL是一种磁盘文件(通常带...
阅读全文
2012-07-10 06:53 工业·编程 ⁄ 共 600字 暂无评论
1. 直接调用 HINSTANCE hinst = NULL;//导入DLL得到的变量 //             返回值                      函数声明的名称           参数 typedef   BOOL   (CALLBACK ...
阅读全文
2012-07-09 04:01 工业·编程 ⁄ 共 1359字 暂无评论
网上大多是将函数封装成dll的教程,类的封装也是基本相似的。 创建DLL 在VS2010中新建一个win32->dll工程。如我建立的工程名为FaceDLL 添加facedll.h的头文件(里面定义dll的接口,调用时会用到) #pragma once #ifdef FaceLIBDLL #define FACEAPI _declspec(dllexport) #else #define FACEAPI  _declspec(dllimport) #endif //可以include需要用到的头文件 #include <opencv2/opencv.hpp> c...
阅读全文