![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc 学习--DLL
xmcai123
学无止境
展开
-
VC++动态链接库(DLL)编程深入浅出(三)
<br />联系作者:e-mail:21cnbao@21cn.com<br /> 相关链接:VC++动态链接库(DLL)编程深入浅出(二) (一)<br /> 第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。<br /><br /> 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限原创 2011-04-22 00:01:00 · 793 阅读 · 0 评论 -
如何做才能从dll中导出类
<br />能不能在一个dll中定义一个类,然后在程序中动态链接这个dll,然后导出这个类呢?<br /><br />要用 MFC 的扩展DLL写<br />倒出类定义<br />//定义一个导出类<br />class AFX_EXT_CLASS CMouseHook : public CObject <br />{<br />public:<br />CMouseHook();<br />virtual ~CMouseHook();<br />BOOL StopMouseHook();<br />BO原创 2011-04-22 02:01:00 · 351 阅读 · 0 评论 -
第二十章 多任务和多线程(多任务的各种模式2)
// --------------------------------------------------------------------------<br /><br />// Window 2: Display increasing sequence of prime numbers<br /><br />// --------------------------------------------------------------------------<br /><br /><br />LRE原创 2011-04-22 01:30:00 · 322 阅读 · 0 评论 -
DLL技术木马进程内幕
<br />很多朋友还是不知道“DLL木马”是什么东东。那到底什么是“DLL木马”呢?它与一般的木马又有什么不同<br />?带着这些疑问,一起开始这次揭密之旅吧! <br /> 一、追根溯源从DLL说起<br /> 要了解什么是“DLL木马”,就必须知道“DLL”是什么意思!说起DLL,就不能不涉及到久远的DOS时代<br />。在DOS大行其道的时代,写程序是一件繁琐的事情,因为每个程序的代码都是需要独立的,这时为了实现一<br />个普通的功能,甚至都要为此编写很多代码。后来随着编程技术发展与转载 2011-04-22 00:16:00 · 362 阅读 · 0 评论 -
VC++动态链接库编程之非MFC DLL
VC++动态链接库编程之非MFC DLL<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转载 2011-04-22 00:08:00 · 316 阅读 · 0 评论 -
【转】杀死已知应用程序名的进程
<br />转】杀死已知应用程序名的进程<br /><br />注 : 网上找的代码,不知道原始出处了,如果原作者看到并有疑问,请和我联系。<br />#include <Tlhelp32.h><br />#include <stdio.h><br />void KillProcess(LPTSTR sProcessName)<br />{<br /> char cTemp[256];<br /> //判该程序是否运行<br /> HANDLE hProcessSnap = NULL;<br /> PROC原创 2011-04-21 23:46:00 · 246 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(一)
<br />1.概论<br /> 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。<br />[被屏蔽广告] 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和原创 2011-04-21 23:45:00 · 425 阅读 · 0 评论 -
第二十章 多任务和多线程(多任务的各种模式)
<br />多任务是一个操作系统可以同时执行多个程序的能力。基本上,操作系统使用一个硬件时钟为同时执行的每个程序配置「时间片段」。如果时间片段够小,并且机器也没有由于太多的程序而超出负荷时,那么在使用者看来,所有的这些程序似乎在同时执行着。<br />多任务并不是什么新的东西。在大型计算机上,多任务是必然的。这些大型主机通常有几十甚至几百个终端机和它连结,而每个终端机使用者都应该感觉到他或者她独占了整个计算机。另外,大型主机的操作系统通常允许使用者「提交工作到背景」,这些背景作业可以在使用者进行其它工作时,原创 2011-04-22 01:31:00 · 571 阅读 · 0 评论 -
第二十章 多任务和多线程(多任务的各种模式4)
<br />// Window 3: Display increasing sequence of Fibonacci numbers<br /> <br />// ----------------------------------------------------------<br /> <br /><br />void Thread3 (PVOID pvoid)<br /> <br />{<br /> <br /> HDC原创 2011-04-22 01:29:00 · 305 阅读 · 0 评论 -
进程是指在系统中正在运转的一个应用程序
<br />进程是指在系统中正在运转的一个应用程序;线程是系统分配处置器时间资源的根本单元,或者说进程之内独立执行的一个单元。关于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开端进而创立一个或多个附加线程,就是所谓基于多线程的多任务。 那进程与线程的区别到底是什么?进程是执行程序的实例。例如,当你运转记事本程序(Nodepad)时,你就创立了一个用来包容组成Notepad.exe的代码及其所需调用动态链接库的进程。每个进程均运转在其专用且受维护转载 2011-04-22 00:36:00 · 4052 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(二)
上节给大家介绍了静态链接库与库的调试与查看(动态链接库(DLL)编程深入浅出(一)),本节主要介绍非MFC DLL。4.非MFC DLL4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是原创 2011-04-21 23:56:00 · 301 阅读 · 0 评论 -
好文推荐:VC++动态链接库(DLL)编程深入浅出
<br />1.概论<br /><br /> 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。<br /> 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸转载 2011-04-21 23:50:00 · 279 阅读 · 0 评论 -
第二十章 多任务和多线程(线程同步)
<br />线程同步<br />大约每年一次,在我公寓窗外的交通繁忙地段的红绿灯会停止工作。结果是造成交通的混乱,虽然轿车一般能避免撞上别的轿车,但是这些车经常挤在一起。<br />我用术语称两条路相交的十字路口为「临界区域」。一辆向南的车和一辆向西的车不可能同时通过一个十字路口而不撞着对方。依赖于交通流量,可以采用不同的方法来解决这个问题。对于视野清楚车辆稀少的路口,可以相信司机有处理的能力。车辆增多可能会要求一个停车号志,而更加繁忙的交通则将要求有红绿灯,红绿灯有助于协调路口的交通(当然,这些灯号必须正原创 2011-04-22 01:26:00 · 374 阅读 · 0 评论 -
学会用 VC++ 动态链接库编写 DLL 木马
<br />DLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是一种这样的武学。DLL一旦染上了魔性,就不再是正常的DLL程序,而是DLL木马,一种恶贯满盈的病毒,令特洛伊一夜之间国破家亡。 <br /> DLL木马的原理<br /> DLL木马的实现原理是编程者在DLL中包含木马程序代码,随后在目标主机中选择特定目标进程,以某种方式强行指定该进程调用包含木马程原创 2011-04-22 00:18:00 · 442 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(四)
<br />这是《VC++动态链接库(DLL)编程深入浅出》的第四部分,阅读本文前,请先阅读前三部分:(一)、(二)、(三)。<br /> MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic、CButton等类使之具备更强大的能力。<br /> 使用Visual C++向导生产转载 2011-04-22 00:03:00 · 224 阅读 · 0 评论 -
C/C++中动态链接库的创建和调用
<br />动态连接库的创建步骤:<br /> 一、创建Non-MFC DLL动态链接库<br /> 1、打开File —> New —> Project选项,选择Win32 Dynamic-Link Library —>sample project<br /> —>工程名:DllDemo<br /> 2、新建一个.h文件DllDemo.h<br />以下是引用片段:<br /> #ifdefDllDemo_EXPORTS<br /> #defineDllAPI__declspec(dllexp原创 2011-04-22 02:15:00 · 460 阅读 · 0 评论 -
创建“通用的”动态链接库(DLL)
<br />最近有许多人问如何让动态链接库的输出函数能够被任何支持动态链接库的语言调用。写动态链接库是很EASY的事情。但是,他们大多觉得输出的名字有乱字符(如:_vbShiftRight@1)。我想在这里就讨论一下如何让输出函数的名字中不出现乱子符。<br /> 首先,除非你绝对需要使用C++编码,否则我还是推荐使用C来写DLL。这里我想让创建的DLL可以在VB中使用。<br /> 你需要实现自己DLL的入口点函数和保证代码使用stdcall调用规范,但这要依赖你使用的编译器。例如,你可以在VC中使用原创 2011-04-22 02:15:00 · 518 阅读 · 0 评论 -
第二十章 多任务和多线程(多任务的各种模式4)
<br />// Window 3: Display increasing sequence of Fibonacci numbers<br /> <br />// ----------------------------------------------------------<br /> <br /><br />void Thread3 (PVOID pvoid)<br /> <br />{<br /> <br /> HDC原创 2011-04-22 01:27:00 · 298 阅读 · 0 评论 -
DLL(Dynamic Link Libraries)
<br /><br />DLL(Dynamic Link Libraries)专题:<br /> 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的EXE程序时原创 2011-04-22 02:04:00 · 305 阅读 · 0 评论