
DLL 使用
文章平均质量分 78
xust999
随便活着
展开
-
DLL封装
<br /><br />DLL,在windows和linux下都用,但是不太相同,因为微软的DLL的内存分配和普通编译成为函数之间的内存格式是不一样的,于是有了__declspec(dllexport)和__declspec(dllimport) ,前者输出DLL中的函数,后者调用的时候使用;相信在windows底下封装过DLL经验的人对于这两个东西还是很熟悉的。偶尔去掉它们,其实也不一定会出问题,但是在多线程的重复调用DLL时,就会有问题的。对于Windows和linux统一版本的DLL的封装就可以用下面转载 2010-12-13 11:13:00 · 519 阅读 · 0 评论 -
DLL(动态链接库)专题
<br /> <br /> Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL。<br /> (1) Kernel32.dll<br /> 它包含那些用于管理内存、进程和线程的函数,例如CreateThread函数;<br /> (2) User32.dll<br /> 它包含那些用于执行用户界面任务(如窗口的创建和消息的传送)的函数,例如CreateWindow函数;<br /> (3) GDI32.dll<br转载 2010-12-13 16:16:00 · 549 阅读 · 0 评论 -
VC++动态链接库编程之非MFC DLL
<br /> <br />4.1一个简单的DLL <br /><br /> 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。<br /> 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC 动态链接库。<br />图6 建立一个非MFC D转载 2010-12-13 16:13:00 · 492 阅读 · 0 评论 -
lib和dll文件的区别和联系
<br /><br />lib和dll <br />lib和dll文件的区别和联系<br />.dll是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式,.dll还有其他的文件格式如.ocx等,所有的.dll文件都是可执行。<br />.lib是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的lib文件在那里。一般来说,与动态连接文件相对比,lib文件也被称为是静态连接库。当你把代码编译成这几种格式的文件时,在以后他们就不可能再被更改。如果你想使用lib文件,就必须:<b转载 2010-12-13 16:11:00 · 512 阅读 · 0 评论 -
DLL导出类避免地狱问题的完美解决方案
<br /> <br />DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。<br />然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也许用户更新了最新版本的DLL库后,应用程序就再也不能工作了。这就是著名的DLL转载 2010-12-13 15:33:00 · 469 阅读 · 0 评论 -
一步一步实现MFC扩展DLL中导出类和对话框
<br />一、创建MFC扩展DLL 步骤:运行Visual Studio 6.0->File->New...->Projects;选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击“下一步”;选择Mfc Extension DLL (using share MFC DLL) 单击“finish”; 以上完成建立扩展DLL的框架,下面接着建立输出类: Insert-> New Class...在打开的对话框中,"Class转载 2010-12-13 15:27:00 · 562 阅读 · 0 评论 -
与LIB和DLL有关
<br /><br />用了些时间学习了下LIB和DLL的一些知识,看了很多人的文章,也自己总结了一些,出于自己的理解...<br />1、LIB与DLL文件的区别<br />2、静态编译和动态链接的23事...<br />3、*.h、*.lib/*.a、*.dll 之间的关系<br />4、为无LIB的DLL制作LIB函数符号输入库 <br />5、调用dll文件 <这里分C版接口和C++版接口,要弄清概念><br />6、DEV-C++编写dll文件的几个知识点<br />1、DLL是一个完整转载 2010-12-13 15:03:00 · 1028 阅读 · 0 评论 -
VC++动态链接库编程之MFC规则DLL
<br /> <br />第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 <br /><br /> 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正!<br /> 5. MFC规则DLL<br /><br /> 5.1 概述<br />转载 2010-12-13 16:12:00 · 552 阅读 · 0 评论 -
动态链接库的创建
<br /> <br />动态链接库的创建:<br />1. 需要在要导出的函数前加上关键字 _declspec(dllexport) 例如:<br />_declspec(dllexport) int add(int a,int b)<br />{<br /> return a+b;<br />}<br />class _declspec(dllexport) ClassName //将_declspec(dllexport)放在类名前,将导出类的所有成<br />{转载 2010-12-13 15:53:00 · 511 阅读 · 0 评论 -
DLL 对C++类的封装
将C++类封装在DLL中,并在DLL中创建静态对象,在外部直接调用相关函数。1, 打开VC2008创建新工程,选择Win32-> Win32 Porject,点击next。2, 选择Application type:DLL,点击finish即创建了一个非MFC DLL------------------------------------因为我们创建的是非MFC的DLL,所以需要定义一些宏,表示导出:1,新建TestWin32DLL.h 在TestWin32DLL.h 中定义#ifdef UQ_EXP原创 2010-12-14 15:01:00 · 3387 阅读 · 1 评论 -
DLL封装 C++
<br /><br />DLL,在windows和linux下都用,但是不太相同,因为微软的DLL的内存分配和普通编译成为函数之间的内存格式是不一样的,于是有了__declspec(dllexport)和__declspec(dllimport) ,前者输出DLL中的函数,后者调用的时候使用;相信在windows底下封装过DLL经验的人对于这两个东西还是很熟悉的。偶尔去掉它们,其实也不一定会出问题,但是在多线程的重复调用DLL时,就会有问题的。对于Windows和linux统一版本的DLL的封装就可以用下面转载 2010-12-13 16:24:00 · 805 阅读 · 0 评论 -
DLL注入,卸载
<br /> <br />DLL注入实验:<br /> <br /> <br />MSDN已经说明了DllMain可以省略,但这里不能省略。<br />原因很简单,查看DllMain定义的形参就知道是什么回事啦。<br />当应用程序加载DLL时会发送消息到DllMain函数的第二个参数。<br />利用这个特性,加载的DLL就可以立刻响应里面的功能函数啦!!<br />下面是实验的代码:<br /> view plaincopy to clipboardprint?#include <windows.h>转载 2010-12-13 15:10:00 · 1306 阅读 · 0 评论 -
在DLL中使用资源
<br /><br />现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。<br /> <br /> <br /> <br />1.Win32 DLL<br /> <br /> 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用 DialogBox或者CreateDialog这两个函数(或相同作转载 2010-12-15 15:37:00 · 588 阅读 · 0 评论