到此一游
到此一游:)
亲密接触VC6.0编译器
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少说。我们先来看一下VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成了.obj文件;所有.obj文件和.lib文
线程本地存储器
1、如果你的应用程序需要严重依赖全局变量或静态变量,那么T L S能够帮助解决它遇到的问题。但是编程人员往往尽可能减少对这些变量的使用,而更多地依赖自动(基于堆栈的)变量和通过函数的参数传递的数据。这样做是很好的,因为基于堆栈的变量总是与特定的线程相联系的。2、在我的软件开发项目中,我总是尽可能避免使用全局变量和静态变量。如果你的应用程序使用全局变量和静态变量,那么建议你务必观察每个变量,并且了解一下它能否改变成基于堆栈的变量。如果打算将线程添加给应用程序,那么这样做可以节省大量时间,甚至单线程应用程序
DLL注入技术
DLL注入技术的用途是很广泛的,这主要体现在,1假如你要操纵的对象涉及的数据不在进程内.2你想对目标进程中的函数进行拦截(甚至API函数,嘿嘿,由此编写个拦截timeGettime的过程,变速齿轮不就出来了么?改天我试试),比如对它所属窗口进行子类化。3你想编写一些函数用于增强或增加目标进程功能,比如可以给目标进程的某个窗口插入个消息循环增加其响应能力。(Mfc Windows程序设计称之为消息泵)。4隐藏自己的程序,很多恶意程序都是这样做的,即使你将恶意程序的进程结束掉也毫无意义了,因为它自己已经插入到很多进程中去了,唯一有效的
Hook学习笔记
关键字 Hook、钩子、VC++、DLL 一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继
钩子使用指南
钩子(Hook),是Windows消息处理机制的一个平台(point),应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。本文将简单介绍钩子的原理和如何使用钩子。 钩子的概念 钩子机制允许应用程序截获处理window消息或特定事件。与DOS中断截获处理机制有类似之处。钩子(Hook),是Windows消息处理机制的一个平台(point),应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目
6种同步方法
同步方法[@more@]同步方法1、互锁函数 互锁函数运行在用户模式。它能保证当一个线程访问一个变量时,其它线程无法访问此变量,以确保变量值的唯一性。这种访问方式被称为原子访问。互锁函数及其功能见如下列表: 函数 参数和功能 InterlockedIncrement 参数为PLONG类型。此函数使一个LONG变量增1 InterlockedDecrement 参数为PLONG类型。此函数使一个LONG变量减1 InterlockedExchangeAdd 参数1为PLONG类型,参数2为LONG类型。此函数将参数2赋给参数1指向的值 InterlockedExchange 参数1为PLONG类型,参数2为LONG类型。此函数将参数2的
面朝大海,春暖花开
实习两个月了,说实在的,工作并没有给我带来太大的变化(除了作息上变好了)。我以为新的开始会带来一个全新的自我,原来潜在的一些本性从来都不曾改变。现在每次静下心来想那些哲学意味的问题,我都会茫然不知所措。难道要继续不闻心思?唯一有的想法就是走好现在的一步,不去想未来。我知道这样不对,可是怎样才是好的行为呢,继续不去想这个问题。还是接着看代码,来得实际点。[@more@]
蓝牙技术及其系统原理
UMTS“蓝牙”( Bluetooth)技术是由世界著名的5家大公司——爱立信(Ericsson)、诺基亚(Nokia、东芝(TOShiba)、国际商用机器公司(IBM)和英特尔(Intel),于1998年5月联合宣布的一种无线通信新技术。它是针对:1蓝牙技术[@more@]UMTS“蓝牙”( Bluetooth)技术是由世界著名的5家大公司——爱立信(Ericsson)、诺基亚(Nokia、东芝(TOShiba)、国际商用机器公司(IBM)和英特尔(Intel),于1998年5月联合宣布的一种无线通信新技术。它是针对:1蓝牙技术“蓝牙”(Bluetooth)原为欧洲中世纪的丹麦皇帝HnddⅡ的名字,他为统一四分
在VC中编译、运行程序的小知识点
1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。[@more@]1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。 C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。 C Run-Time Libraries有静态库版本,也有动态链接库版本
利用FormatMessage函数得到错误代码的文本显示
//////////////////////////////////////////////// 2 /* 3 利用FormatMessage函数得到错误代码的文本显示。而错误代号则可由GetLastError()获得。(_WINDOWS) 4 */ 5 6 DWORD nErrorNo = GetLastError ( ); // 得到错误代码 7 LPSTR lpBuffer; 8 FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | 9 FORMAT_MESSAGE_IGNORE_INSERTS | 10 FORMAT_MESSAGE_FROM_SYSTEM,11 NULL,12 nErrorNo, // 此乃错误代码,通常在程序中可由 GetLastError()得之13 LANG_NEUTRAL,14
十二星座童言无忌
白羊座小朋友 1 、世界上只有两个国家:中国和外国。另一版本:世界上只有三个国家:上国,中国和下国。 2 、听爸爸说调动工作,觉得是用大吊车把人调来调去的,很麻烦的样子。 3 、电视里人肚子痛的时候都是要生孩子了,有一次我肚子痛,跟妈妈说,我要生孩子了,晕死。 [@more@]金牛座小朋友 1 、有一次大人们叫我去打酱油,路上我发现瓶子里还有一些剩的酱油,我还以为打酱油是按瓶算的 ( 其实是按斤算的 ) ,那我岂不是亏了,于是一口气把剩的酱油喝了个精光。 2 、一直觉得很奇怪,为什么国家不印很多的钞票
忘记一个人的N种方式
比如, 有些词语我不会再用, 每次要用到的时候,我很小心, 绕开它,换另一个, 这样就可以少想你一次。[@more@]比如, 有些地方我不会再去, 因为那里有太多你的足迹。 不去了,就又可以丢掉一些回忆。 比如, 我改变一种习惯, 从前我一向爱吃甜食, 因为你也喜欢, 所以甜食也归你了,我改吃辣了。 比如, 有一天我无意中翻看相册, 发现那上面有你, 于是我再也不上那个网站, 就又可以多忘了你一点。 比如, 有一天我无意中打开抽屉, 偶然发现那条手链, 就立即把她深锁箱底。 这样,就可以不再想起赠手链的那个你。 比如, 有
动态链接库
DLL(Dynamic Link Libraries)专题: 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的EXE程序时,在每次修改重建时都必须调整编译所有源代码,增加了编译过程的复
WIN32API函数大全
1. API之网络函数2. API之消息函数 3. API之文件处理函数4. API之打印函数 5. API之文本和字体函数 6. API之菜单函数 7. API之位图、图标和光栅运算函数 8. API之绘图函数 9. API之设备场景函数 10. API之硬件与系统函数 11. API之进程和线程函数 12. API之控件与消息函数 [@more@]1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetClos
踏入C中的雷区——C 内存管理详解(zz荐)
2007年07月07日 星期六 下午 01:09伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在
什么是"蓝牙"技术? (2)
"蓝牙"技术最先是由爱立信开始研制的,现在已经得到了诺基亚、IBM、东芝、因特尔及许多其它相关制造厂家的支持。其目的是为了免除在无绳电话或移动电话、调制解调器、头套式送/受话器、PDAs、计算机、打印机、幻灯机、局域网等之间加装电线、电缆和连接器。而且,这种技术可以延伸到那些完全不同的新设备和新应用中去。"蓝牙"的技术特性—以每秒1M个码元的字符速率传输,充分利用信道的最大有效带宽. 快速跳频避免干扰 可变的电源输出使干扰减小到最小 采用短数据包传输增强抗干扰能力 快速确认允许有附加低速率的编码
什么是CDMA?
CDMA是码分多址的英文缩写(Code Division Multiple I Access),它是在数字技术的分支——扩频通信技术上发展起来的。CDMA是为现代移动通信网所要求的大容量、高质量、综合业务、软切换、国际漫游等要求而设计的一种移动通讯技术。CDMA技术的原理是基于扩频技术,即将需传送的具有一定信号带宽信息数据,用一个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去。接收端使用完全相同的伪随机码,与接收的带宽信号作相关处理,把宽带信号换成原信息数据的窄带信号即解扩,以实现信息通信。CDMA移
什么是GSM
20世纪80年代中期,当模拟蜂窝移动通信系统刚投放市场时,世界上的发达国家就在研制第二代移动通信系统。其中最有代表性和比较成熟的制式有泛欧GSM (Global System for Mobile Communication),美国的ADC(D-AMPS)和日本的JDC(现在改名为PDC)等数字移动通信系统。在这些数字系统中,GSM的发展最引人注目。1991年GSM系统正式在欧洲问世,网络开通运行。GSM系列主要有GSM900、DCS1800和PCS1900三部分,三者之间的主要区别是工作频段的差异。蜂窝移动通信的出现可以说是移动通信的一次革命。其频率复用大大提高了频率利用率并增大系统容量,网
什么是GPRS 无线通讯网络
GPRS 是通用分组无线业务(GeneralPacketRadioService)的英文简称,是一种新的分组数据承载业务。相对原来GSM的拨号方式的电路交换数据传送方式,GPRS是分组交换技术,具有“实时在线”、“按量计费”、“快捷登录”、“高速传输”、“自如切换”的优点。GPRS 是Gerneral Packer Radio Service的英文缩写,中文译为通用无线分组业务,具体来讲,GPRS是一项高速数据处理的科技,即以分组的“形式”把数据传送到用户手上。因此, gprs技术可以令手机上网省时、省力、省花费。打个比方,GSM是猫上普通固定电话线网的话,那么GPRS就是手机的A