09 2011 档案
摘要:程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内...
阅读全文
摘要:看了下《windows核心编程》的错误代码处理部分。我这才知道错误代码处理的重要性,以前的时候有错误就埋头苦调,现在发现当初好傻。埋头苦调根本就是又费力又费时,而且错误代码还不一定能调的出来。以后就用Windows下面的错误代码处理额···下面是一个例子#include <windows.h> DWORD GetLastErrorBox(HWND hWnd, LPSTR lpTitle);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LPSTR szAppName = "Curv
阅读全文
摘要:碰到了一个很纠结的事情,结果我找了很久才找到问题所在,竟然出在了WM_PAINT消息里面。我本来是想写些GDI的东西的,想设个定时器每隔点时间画个点。结果纠结的事情就是定时器不起作用了,就是画不出点。后来我做了一个精简,写了个小程序,在按下左键的时候触发定时器,然后每1S钟触发WM_TIMER消息,弹出一个框。奇怪的事情就是在这里,老弹不出框。先看代码:#include <windows.h>
#include <stdio.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; #define ID_TIM
阅读全文
摘要:gcc & g++现在是gnu中最主要和最流行的c & c++编译器 。g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接。下面以Test.cpp为例:命令: g++ Test.cpp功能:生成默认为a.exe的文件,这个过程包含了编译和链接。再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成的是.exe文件。你要输出Test.exe的话可以用:g++ -o Test.exe Test.cpp
阅读全文
摘要:网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话)
分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5
阅读全文
摘要:今天很高兴,因为军训结束了,真是累啊,变得黑人一样。。。(泪奔)切入正题,最近使用到了HOOK技术,就顺便学习了下DLL的知识,不过只是大概地看了下而已,概念性的东西很多,也就只能了解下,还有很多涉及到操作系统层面的,所以看的云里雾里。最后东拼西凑写了点,便于以后自己学习。 Windows系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创建为较小的DLL(DynamicLinkable Library)文件,并可对它们单独编译和测试。在运行时,只有当EXE程序确实要调用这些DLL模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了EXE文件的大小和对内.
阅读全文
浙公网安备 33010602011771号