自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ASCE1885

编程是一种艺术 目的在于告诉其他人他想要让计算机做什么

  • 博客(24)
  • 资源 (18)
  • 问答 (2)
  • 收藏
  • 关注

原创 《Windows API巡礼》---GetCurrentDirectory和GetModuleFileName

<br />使用GetCurrentDirectory和SetCurrentDirectory可以获取程序的当前目录,使用GetModuleFileName可以获取模块的路径,如果以NULL为参数调用GetModuleFileName,将会返回当前模块的路径。如果在程序主模块(.exe)中获取当前模块路径,便可以从当前的路径中提取出程序运行时所在的路径。下面分别介绍:<br />1)GetCurrentDirectory函数用于获取当前进程所在的目录:<br />DWORD WINAPI GetCurren

2010-06-30 20:10:00 2357

原创 《Windows API巡礼》---StringCbCopy和StringCchCopy

StringCbCopy函数用于拷贝string,且提供了目标缓冲区的大小作为参数,防止缓冲区溢出等安全问题。这个函数可用于替换以下函数的使用:strcpy, wcscpy, _tcscpylstrcpyStrCpyStringCbCopy函数原型如下:HRESULT StringCbCopy(  __out  LPTSTR pszDest, //目标字符串缓冲区  __in   size_t cbDest, //目标缓冲区大小(字节),这个值必须考虑pszSrc加上空结束符’/0’的大小;        

2010-06-29 10:00:00 4766

原创 《Windows核心编程》---图形用户界面之窗口

<br />图形用户界面之---窗口:<br />主函数一般是:<br />/*************************************************************************<br />* WinMain<br />* 功能:程序入口点,调用InitApplication,InitInstance,进行消息循环<br />* 参数:hinstance---应用程序本次运行实例<br />*           hPrevInstance---应用程序之前的实

2010-06-28 09:11:00 2487

原创 《Windows核心编程》---数据复制消息WM_COPYDATA

WM_COPYDATA是一个非常特殊的消息,此消息可能携带一个比较大的消息参数,而其他消息都只能携带两个固定大小的参数(WPARAM和LPARAM)。WM_COPYDATA的两个参数如下:wParam //发送或传递这个消息的窗口lParam    //指向包含要发送的数据的COPYDATASTRUCT结构的指针在发送WM_COPYDATA消息时,WM_COPYDATA的wParam参数应该赋值为发送此消息的窗口,而lParam消息参数指向一个COPYDATASTRUCT结构类型的变量:typedefstr

2010-06-26 16:53:00 2194 2

原创 《Windows核心编程》---剪贴板

<br />剪贴板是由系统定义的,并不属于任何一个特定的进程。系统中所有进程都可以访问和设置剪贴板。剪贴板最大的特点就是数据传输没有明确的目标,数据是被动访问的;剪贴板的内容可以被多次访问,直到新的数据写入。剪贴板是一种可供选择的进程间通信方式,但由于系统中任何一个进程都可以都可以无限制地访问剪贴板,因此,它是一种不可靠的通信方式。<br />1)获取和设置剪贴板数据<br />涉及到的API有:OpenClipboard、EmptyClipboard、SetClipboardData、GetClipboa

2010-06-26 15:29:00 2060

原创 《Windows核心编程》---邮槽通信

邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠UDP数据传输协议。使用邮槽通信的进程分为客户端和服务端,邮槽由服务端创建,创建后,客户端可以通过邮槽名打开邮槽,在获得邮槽句柄后可以向邮槽写入消息。邮槽通信是单向的,只有服务端能从邮槽中读取消息,而客户端只能写入消息。消息是先进先出的。通过邮槽通信的数据可以是任意格式的,但为了保证邮槽在各种Windows平台下都能够正常工作,邮槽通信一条消息的长度不能大于424字节。邮槽除了在本机上进行进程间通信外,还可以在主机之间进行通信。1)邮槽的命名:本机上邮槽

2010-06-25 15:14:00 1609

原创 《认清C++语言》---继承而来的非虚函数和缺省参数

======================继承而来的非虚函数======================假设类Derive公有继承自类Base,且类Base定义了一个公有非虚成员函数func:class Base{public:         void Func();         ...};class Derive : public Base{         ...}Derive de;       //定义一个派生类对象Base *pb = &de;    //得到一个指向de的Base指针pb

2010-06-25 10:00:00 1447

原创 《认清C++语言》---接口继承和实现继承

<br />作为类的设计者,有时希望派生类只继承成员函数的接口(声明);有时希望派生类同时继承函数的接口和实现,但允许派生类改写实现;有时则希望同时继承接口和实现,并且不允许派生类改写任何东西。<br />class ASCEShape<br />{<br />public:<br />         virtualvoid draw() const = 0;     //纯虚函数,因此ASCEShape成为一个抽象类<br />         virtualvoid error(const strin

2010-06-24 22:52:00 1198

原创 《认清C++语言》---缺省构造函数

<br />构造函数能够初始化对象,而缺省构造函数(指没有参数的构造函数)则可以不利用任何在建立对象时的外部数据就能初始化对象。这带来正反两面的效果:正面效果是:一些行为特性与数字相仿的对象被初始化为空值或不确定值是合理的,还有例如链表、哈希表、图等数据结构也可以被初始化为空容器;反面效果是:对很多对象来说,不利用外部数据进行完全的初始化是不合理的,比如一个输入姓名的通讯录对象是没有意义的。<br />理想情况下,无需任何数据就可以建立对象的类可以包含缺省构造函数,而需要初始数据来建立对象的类则不能包含缺省

2010-06-23 22:35:00 1591

原创 《计算机基础复习》===数据库技术基础

<br /><br />数据库系统三级结构:<br />数据库系统一般划分为三个抽象级:用户级、概念级、物理级。<br />1)用户级数据库:对应于外模式。它是用户看到和使用的数据库,又称用户视图;用户级数据库主要由外部记录组成,不同用户视图可以互相重叠,用户的所有操作都是针对用户视图进行的;<br />2)概念级数据库:对应于概念模式。它是数据库管理员看到和使用的数据库,又称DBA视图;和用户视图不同,一个数据库应用系统只存在一个DBA视图。概念级模式把用户视图有机结合成一个整体,综合平衡考虑所有用户的要

2010-06-19 22:52:00 1395

原创 《Windows内核编程》---基本数据结构

驱动对象:一个驱动对象代表一个驱动程序,或者说一个内核模块。驱动对象的结构定义如下(wdm.h):typedefstruct _DRIVER_OBJECT {    //结构的类型和大小    CSHORT Type;CSHORT Size;    // The following links all of the devices created by a single driver    // together on a list, and the Flags word provides an exten

2010-06-19 20:28:00 2420

原创 《Windows内核编程》---系统时间和定时器

内核编程与应用程序编程一个很重要的不同点在于:应用编程中,多数情况下只需考虑单线程就可以;在内核编程中,绝大多数情况下所写的代码都位于多线程环境中。获得当前“滴答数”:获得系统日前和时间往往是为了写日志,获得启动毫秒数则很适合用来做一个随机数的种子。有时也使用时间相关的函数来寻找程序的性能瓶颈。在Win32开发中,我们使用GetTickCount()函数来返回系统自启动之后经历的毫秒数。在驱动开发中,对应的函数是KeQueryTickCount():VOID KeQueryTickCount(       

2010-06-18 10:35:00 5978 1

原创 《Windows内核编程》---系统线程和同步事件

系统线程:在驱动中生成的线程一般是系统线程,系统线程所在的进程名为“System”,用到的内核API函数是:NTSTATUS PsCreateSystemThread(OUT PHANDLE ThreadHandle,IN ULONG DesiredAccess,IN POBJECT_ATTRIBUTES objectAttributes OPTIONAL,IN HANDLE ProcessHandle OPTIONAL,OUT PCLIENT_ID ClientId OPTIONAL,IN PKSTART

2010-06-18 10:22:00 4571 3

原创 《Windows核心编程》---文件操作

<br />Windows提供了一类API来读、写和管理磁盘文件。<br />使用API函数读写文件时,首先要使用CreateFile函数创建文件对象,调用成功会返回文件句柄。我们以此句柄为参数调用ReadFile和WriteFile函数,进行实际的读写操作;最后调用CloseHandle函数关闭不再使用的文件对象句柄。<br /> <br />1)打开和关闭文件:<br />CreateFile是一个功能强大的函数,Windows下的底层设备几乎都由它打开。它可以创建或打开文件、目录、物理磁盘、控制台缓冲

2010-06-14 15:03:00 2101

原创 《Windows核心编程》---Windows服务

Windows服务(Services),是一些运行在WindowsNT、Windows2000和Windows XP等操作系统下用户环境以外的程序。它不同于一般的可执行程序,不需要系统登录便可以运行,以完成某些特定的功能。服务提供了管理能力,可以将后台程序转换成服务,然后就可以用命令或者在系统启动用户登录之前启动,并且也可以暂停、恢复和终止。服务信息在注册表中维护。为了能够在系统中正确运行,在创建一个服务时必须接受一些特殊的规则,最重要的一点是:必须在目标系统中安装并且注册该Service。此外,基于用户界

2010-06-10 10:41:00 2450

原创 《Windows核心编程》---内核对象和进程基础

80386处理器有3种工作模式:实模式、保护模式和虚拟86模式。其中,实模式和虚拟86模式是为了和8086处理器兼容而设置的,保护模式是80386处理器的主要工作模式。Windows操作系统运行在此模式下,保护主要是对存储器的保护。80386对多任务操作系统的支持主要体现在两方面:一是在硬件上为任务之间的切换提供良好的条件;二是它实现了多任务隔离。多任务隔离技术可以使每个任务都有独立的地址空间,就像每个任务独享一个CPU一样。在Windows中,任务被进程取代,进程是正在运行的应用程序的实例;但是占用CPU

2010-06-08 20:05:00 2005 1

原创 《Windows核心编程》---ADO基础

<br />传统的ODBC技术只能访问关系型数据库,且访问速度慢,因此,微软推出了OLE DB(应用在数据库上的对象连接于嵌入)和ADO(ActiveX data Object),OLE DB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,大大提高了访问速度。同时,OLE DB和ADO不仅可以访问关系型数据库,还可以访问非关系型数据库。<br /> <br />ADO建立在OLE DB之上,ADO是一个DLE DB用户程序,使用ADO的应用程序都要间接地使用DLE DB。A

2010-06-07 16:31:00 1274

原创 《Windows核心编程》---内存映射文件基础

<br />与虚拟内存相似,内存映射文件保留了一个地址空间区域,在需要时将它提交到物理存储器。它们的不同点是内存映射文件提交到物理存储器的数据来自磁盘上相应的文件,而不是系统页文件。<br /> <br />使用内存映射文件的目的有3个:<br />1)系统使用内存映射文件来加载和执行.EXE和.DLL文件。这极大地节省了系统页文件空间,也缩短了启动应用程序所需的时间;<br />2)使用内存映射文件访问磁盘上的数据。这既避免了对文件执行文件IO操作,也避免了为文件的内容申请缓冲区;<br />3)使用内存

2010-06-06 16:48:00 1495

原创 《Windows核心编程》---检测PE文件有效性

<br />PE文件是Windows系统中任何可执行模块或者DLL的文件格式。PE即Portable Executable,它是Win32环境自身所带的执行文件格式。PE文件是跨Win32平台的,也就是说即使是运行在非intel CPU上的Windows都能够被PE转载器识别和使用该文件格式。<br />PE文件以64字节的DOS文件头(IMAGE_DOS_HEADER结构)开始,之后是一小段DOS程序,然后是248字节的NT文件头(IMAGE_NT_HEADERS结构)。NT文件头的偏移地址由IMAGE_

2010-06-06 10:50:00 2364

原创 《Windows核心编程》---CAPIHook类

<br />封装CAPIHook类:(某本书的笔记)<br /> <br />1)HOOK所有模块<br />HOOK一个进程对某个API的调用时,不仅要修改主模块的导入表,还必须遍历此进程的所有模块,替换掉每个对目标API的调用:<br />void CAPIHook::ReplaceIATEntryInOneMod(LPSTR pszExportMod, PROC pfnCurrent, <br />                            PROC pfnNew, HMODULE hMo

2010-06-03 21:58:00 6247

原创 《Windows核心编程》---HOOK API基础

<br />HOOK API是指截获特定进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。最常用的一种挂钩API的方法是改变目标进程中调用API函数的代码,使得它们对API的调用变为对用户自定义函数的调用。<br />Windows下应用程序有自己的地址空间,它们只能调用自己地址空间中的函数;因此,在挂钩API之前,必须将一个可以代替API执行的函数的执行代码注入到目标进程,接着将目标进程对该API的调用改为对注入到目标进程中自定义函数的调用。这个自定义函数一般称为代理函数。在代理函数中

2010-06-03 19:35:00 3207

原创 《ASCE1885的网络编程》の以太网接口堆栈

网络工作在通信协议上,现在非常普遍的是使用TCP/IP的以太局域网(Ethernet LAN)。在局域网中,计算机可以用同轴电缆、双绞线或光纤连接起来。现在大多数网络使用双绞线连接。以太网包含以下几层:1)介质访问控制(MAC)层以太网的最底层是硬件层,称为介质访问控制(Media Access Control)层。网卡属于该层,它包含了串行网络接口和一个控制器,控制器将原始数据转换成电子信号,并发送到正确位置。以太网接口的各层有不同的寻址方法,在最下面的MAC层,寻址是通过MAC号进行的。MAC号是一个4

2010-06-02 22:32:00 1682

原创 《ASCE1885的IT 笔试面试题》-- 0000 0000

问题1:写出BOOL flag与“零值”比较的if语句解答:if(flag)或者if(!flag);如下写法均属不良风格:if(flag == TRUE)if(flag == 1)if(flag==FALSE)if(flag==0)问题2:写出char *p与“零值”比较的if语句解答:if(p == NULL)或者if(p != NULL)如下写法均属不良风格:if(p==0)if(p!=0)if(p)if(!p)问题3:在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”解答:C++

2010-06-01 17:34:00 1512

原创 《Windows核心编程》---动态链接库和钩子基础

动态链接库是应用程序的一个模块,这个模块用于导出一些函数和数据以供其他程序中的其他模块调用:1)动态链接库是应用程序的一部分,是作为模块被进程加载到自己的空间地址中;2)动态链接库在程序编译时并不会被插入到可执行文件中,在程序运行时这个库的代码才会调入内存,即“动态链接”;3)若有多个程序用到同一个动态链接库,Windows在物理内存中只保留一份库的代码,仅通过分页机制将这份代码映射到不同的进程中;动态链接库的扩展名一般是dll,但也可以是某些exe、各种控件(*.ocx)等。动态链接库的入口点函数是Dll

2010-06-01 16:34:00 1704

EditTextDemo

http://blog.csdn.net/ace1985/article/details/8172517 这篇博客的源码

2012-11-12

EmailDemo.rar

blog.csdn.net/ace1985/article/details/8119898 Android调用系统邮件类应用的正确实现方法的代码

2012-10-28

360Opti

360Opti

2012-09-27

SackOfViewAdapter

博客http://blog.csdn.net/ace1985/article/details/7988275的源码

2012-09-17

开源SectionList

开源SectionList

2012-08-24

jamendo.apk

jamendo.apk

2012-08-18

Desktop

ProxyHttpClient.java ConnectManager.java

2012-08-07

QZoneDemo

QZoneDemo

2012-08-03

百度贴吧布局框架的研究与实现(Android版本) 的源码

博客地址:http://blog.csdn.net/ace1985/article/details/7824431

2012-08-02

QZoneDemo

QZoneDemo

2012-08-01

Android意见反馈功能的代码框架

Android意见反馈功能的代码框架

2012-07-23

HTML.5与CSS.3权威指南

HTML.5与CSS.3权威指南 HTML.5与CSS.3权威指南

2012-05-09

Linux防火墙

Linux防火墙(Linux.Firewalls.Attack.Detection.and.Response.with.iptables,.psad,.and.fwsnort)(美)拉什.中文高清PDF版.pdf

2012-03-14

Java加密与解密的艺术

Java加密与解密的艺术

2012-03-13

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.001

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.001

2012-03-09

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.002

[疯狂Java:突破程序员基本功的16课].李刚.高清扫描版.zip.002

2012-03-09

Panoramio Android源码

Android开源代码解读の地图照片应用Panoramio的实现详解系列的源代码(http://blog.csdn.net/ace1985/article/details/7289040)

2012-02-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除