- 博客(20)
- 资源 (145)
- 收藏
- 关注
原创 优化MySQL性能的84个使用建议
MySQL is a widely used and fast SQL database server. It is a client/server implementation that consists of a server daemon (mysqld) and many different client programs/libraries.You can c
2016-12-30 15:29:21 560
原创 vba--公式法从身份证中提取信息
从身份证中提取有用信息:1)公式法DATEDIF函数是Excel隐藏函数,在帮助和插入公式里面没有。 返回两个日期之间的年\月\日间隔数。常使用DATEDIF函数计算两日期之差。[英] DATEDIF function 语法 DATEDIF(start_date,end_date,unit) Start_date 为一个日期,它代表时间段内的第一个
2016-12-26 09:52:53 1648
转载 PE文件结构详解--重定位
在调用导入函数时系统生成的代码是像下面这样的:在这里,IE的iexplorer.exe导入了Kernel32.dll的GetCommandLineA函数,可以看到这是个间接call,00401004这个地址的内存里保存了目的地址,根据图中显示的符号信息可知,00401004这个地址是存在于iexplorer.exe模块中的,实际上也就是一项IAT的地址。这个是IE6的exe中的
2016-12-23 16:09:52 475
转载 PE文件结构详解--延迟导入表
延迟导入(Delay Import)。看名字就知道,这种导入机制导入其他DLL的时机比较“迟”,为什么要迟呢?因为有些导入函数可能使用的频率比较低,或者在某些特定的场合才会用到,而有些函数可能要在程序运行一段时间后才会用到,这些函数可以等到他实际使用的时候再去加载对应的DLL,而没必要再程序一装载就初始化好。这个机制听起来很诱人,因为他可以加快启动速度,我们应该如何利用这项机制呢?VC有一
2016-12-23 16:07:25 410
转载 PE文件结构详解--PE导出表
通过函数获取数组中的项可以用RtlImageDirectoryEntryToData函数,DataDirectory中的每一项都可以用这个函数获取,函数原型如下:PVOID NTAPI RtlImageDirectoryEntryToData(PVOID Base, BOOLEAN MappedAsImage, USHORT Directory, PULONG Size);Base
2016-12-23 16:03:02 2727
转载 PE文件结构详解--可执行文件头
了解一个文件的格式,最应该首先了解的就是这个文件的文件头的含义,因为几乎所有的文件格式,重要的信息都包含在头部,顺着头部的信息,可以引导系统解析整个文件。所以,我们先来认识一下PE文件的头部格式。还记得上篇里的那个图吗?DOS头和NT头就是PE文件中两个重要的文件头。一、DOS头DOS头的作用是兼容MS-DOS操作系统中的可执行文件,对于32位PE文件来说,DOS所
2016-12-23 14:38:31 5157
转载 PE文件结构详解--基本概念
PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任何扩展名。那Windows是怎么区分可执行文件和非可执行文件的呢?我们调用LoadLibrary传递了一个文件名,系统是如何判断这个文件是一个合法的动态库呢?这就涉及到PE文件结构了。PE文件的结构一般来说如
2016-12-23 14:28:46 304
转载 纯手工编写的PE可执行程序
【文章标题】: 纯手工编写的PE可执行程序【文章作者】: Kinney【下载地址】: 自己搜索下载【使用工具】: C32【操作平台】: win 7【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 最近,学习PE结构的知识。之后深有感触,随即便萌发了不依赖任何开发环境和编译器,纯手工写一个小程序的念头。所以我打算就写一个弹出MessageBox的小程序吧(
2016-12-23 11:10:23 563
原创 COM编程精彩实例--COM通信
COM是如何进行通信的://////①代理/桩子或COM DLL将方法的调用参数转化成NDR格式;②COM调用RPC将格式化的数据传递给服务器端的COM代理/桩子或COM DLL; ③服务器端的COM代理/桩子或COM DLL将数据还原成参数表,放到调用堆栈和/为指针参数开辟的内存中;④服务器的COM代理/桩子或COM DLL,然后调用COM
2016-12-22 14:17:21 2638
原创 COM编程精彩实例--COM对象
创建一个COM对象的简单过程:1)调用COM API接口 ::CoCreateInstance(),可以直接调用或通过一个已经包装的c++类调用。这个调用需要指定两个ID,一个是要实例化的类的ID,一个是对象所在的DLL或exe文件的ID。这里都使用惟一的ID标志,而不使用类名或者文件名,这样可以避免重名带来的混淆,有时候一个庞大的系统要先将之转化为真实的文件名。2)因为DLL或EXE文件
2016-12-20 15:28:15 2813
原创 COM技术内幕--调试接口与自动化
同每一个EXE都有其自己的进程不同,DLL将被映射到链接它们的EXE文件的进程空间中。由于这个原因,DLL也被称作是进程服务器,而EXE则被称作是进程外服务器。不同进程空间中的相同的内存地址将指向不同的物理内存单元/////////////对于跨越进程边界的接口,我们需要考虑如下一些条件:1)一个进程需要能够调用另外一个进程中的函数。2)一个进程需要能够将数据传递给
2016-12-20 11:09:55 2469
原创 COM技术内幕--编程工作的简化
智能接口指针:1)什么时智能指针一个智能指针实际上就是一个重载了操作符->的类。智能接口指针类包含指向另外一个对对象的指针。当用户调用智能指针上的->操作符时,智能指针把此调用转发给它所包含的所指对象。智能接口指针中所包含的指针将是指向一个接口的。智能接口指针IPtr的实现:class CFoo{public:virtua
2016-12-19 13:18:23 359
原创 COM技术内幕--包容和聚合
包容简介:一个包含有一个内部组件并使用了其IZ接口的外部组件的内部结构//////////////////////////////在COM中,同其他内容类似,包容也是在接口级完成的。一个包含有一个内部组件并复用了其IY接口实现的外部组件的内部结构 ///////////////当外部组件聚合某个接口时,它将
2016-12-19 09:37:09 801
原创 COM技术内幕--类厂
CoCreateInstance在COM库中包含一个用于创建组件的名为CoCreateInstance函数。此函数要一个CLSID,参数,在些基础上创建相应组件的实例,并返回此组件实例的某个接口。1) CoCreateInstance声明如下:HRESULT __stdcall CoCreateInstance(const CLSID& clsid,IUnk
2016-12-18 12:52:59 1820
原创 COM技术内幕--关于HRESULT、GUID、注册表及其他细节
HRESULT这就是结果:Here's the RESULTHRESULT 结构如下 :////////////////////////名称含义S_OK函数成功。在某些情况下,它还表示函数返回了一个布尔真值。被定义为0NOERROR同S_OK相同S_FALSE函数成功并返回一个布尔假值。
2016-12-15 15:59:00 1214
原创 COM技术内幕--引用计数及动态链接
引用计数简介AddRef 和 Release实现的是一种名为引用计数的内存管理技术。引用计数是使组件能够自己将自己删除的最简单同时效率最高的方法。COM组件维护一个称作是引用计数的数值。当客户从组件取得一个接口时,此引用计数值将增1。当客户使用完某个接口后,组件的引用计数值将减1。当引用计数值为0时,组件即可将自己从内存中删除。规则:1)在返回之前调用AddRef。对于那些
2016-12-15 14:36:47 1086
原创 COM技术内幕--QueryInterface函数
接口查询:在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown.头文件包含在Win32 SDK的unknwn.h头文件中。 引用如下:interface IUnknown{virtual HRESULT __stdcall QueryInterface(const IID& iid,void** ppv)=0;virtual
2016-12-15 11:19:37 3541
原创 COM技术内幕--接口
对组件的需求:第一:组件必须动态连接第二:它们必须隐藏其内部实现细节。实际上COM是使用了DLL来给组件提供动态链接的能力。带来的好处:1.提供了一个所有组件都应遵守的标准2.允许使用组件的多个不同版本,而且这一点对于用户而言几乎是透明的3.使得可以按相同的方式来处理类似的组件4.支持对远程组件的透明链接COM接口在C++中是用纯抽象基类
2016-12-14 16:28:20 413
转载 设计模式C++实现(21)——访问者模式
访问者模式在GOF的《设计模式:可复用面向对象软件的基础》一书中对访问者模式是这样说的:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。该模式的目的是要把处理从数据结构分离出来。访问者模式让增加新的操作很容易,因为增加新的操作就意味着增加一个新
2016-12-06 11:21:26 362
转载 设计模式C++实现(20)——解释器模式
1. 解释器模式(Interpreter Pattern)的定义(1)定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 ①文法:即语法规则。在解释器模式中每一个语法都将对应一个解释器对象,用来处理相应的语法规则。它对于扩展、改变文法以及增加新的文法规则都很方便。 ②解释器模式描述了如何为简单的语言定义一个文
2016-12-06 10:17:32 5082
Sustainable Software Development Patterns and Best Practices with C++ 17
2018-09-05
[Stefan_Bjornander]_C 17_By_Example_Practical
2018-09-05
Mastering_the_C 17_STL
2018-09-05
Professional C# 6 and .NET Core 1.0
2017-12-04
C#开发实战宝典
2017-12-04
C#程序开发范例宝典
2017-12-04
[Windows.Internals.Part.2(6th,2012.9)].Mark.E.Russinovich
2017-12-02
[Windows.Internals.Part.1(6th,2012.3)].Mark.E.Russinovich
2017-12-02
Sams.Windows.Presentation.Foundation.Unleashed
2017-12-02
Addison.Wesley.Essential.Windows.Presentation.Foundation
2017-12-01
wpf control development
2017-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人