
链接库-Win系统编程
文章平均质量分 72
hlfkyo
幸福就是劳动
展开
-
二. 静态链接库
对静态链接库的讲解不是本文的重点,但是在具体讲解DLL之前,通过一个静态链接库的例子可以快速地帮助我们建立“库”的概念。 建立一个静态链接库在VC++6.0中new一个名称为libTest的Win32 Static Library工程,并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下://文件:lib.h#ifndef LIB_H#define LI原创 2010-04-21 13:33:00 · 1341 阅读 · 0 评论 -
一. 链接库概述
先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使 用DLL,该DLL不必转载 2010-04-21 13:13:00 · 927 阅读 · 0 评论 -
四. 一个简单的DLL(非MFC动态链接库)
第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 在VC++中new一个Win32 Dynamic-Link Library工程dllTest。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC 动态链接库。 在建立的工程中添加lib.h及li翻译 2010-04-23 13:26:00 · 1570 阅读 · 1 评论 -
三. 库的调试与查看
由于库文件不能单独执行,因而在按下F5(开始debug模式执行)或CTRL+F5(运行)执行时,其弹出如图3所示的对话框,要求用户输入可执行文 件的路径来启动库函数的执行。这个时候我们输入要调用该库的EXE文件的路径就可以对库进行调试了,其调试技巧与一般应用工程的调试一样。 通常有比上述做法更好的调试途径,那就是将库工程和应用工程(调用库的工程)放置在同一VC工作区,只对应用工程进行原创 2010-04-22 12:59:00 · 770 阅读 · 0 评论 -
六. MFC扩展DLL的创建
MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外, MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic、 CButton等类使之具备更强大的能力。 使用Visual C++向导生产MFC扩展DLL时,MFC向导会自动转载 2010-04-24 13:04:00 · 1468 阅读 · 0 评论 -
七. 让EXE导出函数及DLL木马
偶然发现OllyDBG.exe导出了一堆函数,这些函数都是供其插件调用的。对这种体系结构很感兴趣,想弄清楚它的实现原理。后来又看到梁肇新的书《编程高手箴言》第278页提到的调用门,觉得都应该差不多。三种不同的解决办法(原理可能是一样的,:)):1)在导出函数声明之前加上__declspec(dllexport)。例:__declspec(dllexport) int Add(int a, int原创 2010-04-24 13:36:00 · 1850 阅读 · 0 评论 -
五. MFC规则DLL(Regular)
5.1 概述 MFC规则DLL的概念体现在两方面: (1) 它是MFC的 “是MFC的”意味着可以在这种DLL的内部使用MFC; (2) 它是规则的 “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC。而MFC扩展DLL与应用程序的接口可以是MFC,可以从MFC扩展DLL中导出一个MFC类的派生类翻译 2010-04-23 18:53:00 · 913 阅读 · 0 评论