摘要: 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内... 阅读全文
posted @ 2011-09-30 00:21 Livesss 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 看了下《windows核心编程》的错误代码处理部分。我这才知道错误代码处理的重要性,以前的时候有错误就埋头苦调,现在发现当初好傻。埋头苦调根本就是又费力又费时,而且错误代码还不一定能调的出来。以后就用Windows下面的错误代码处理额···下面是一个例子#include <windows.h> DWORD GetLastErrorBox(HWND hWnd, LPSTR lpTitle); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LPSTR szAppName = "Curv 阅读全文
posted @ 2011-09-29 18:33 Livesss 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 碰到了一个很纠结的事情,结果我找了很久才找到问题所在,竟然出在了WM_PAINT消息里面。我本来是想写些GDI的东西的,想设个定时器每隔点时间画个点。结果纠结的事情就是定时器不起作用了,就是画不出点。后来我做了一个精简,写了个小程序,在按下左键的时候触发定时器,然后每1S钟触发WM_TIMER消息,弹出一个框。奇怪的事情就是在这里,老弹不出框。先看代码:#include <windows.h> #include <stdio.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; #define ID_TIM 阅读全文
posted @ 2011-09-28 00:09 Livesss 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2011-09-27 00:19 Livesss 阅读(63902) 评论(3) 推荐(9) 编辑
摘要: 网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话) 分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5 阅读全文
posted @ 2011-09-25 01:52 Livesss 阅读(18998) 评论(2) 推荐(4) 编辑
摘要: 今天很高兴,因为军训结束了,真是累啊,变得黑人一样。。。(泪奔)切入正题,最近使用到了HOOK技术,就顺便学习了下DLL的知识,不过只是大概地看了下而已,概念性的东西很多,也就只能了解下,还有很多涉及到操作系统层面的,所以看的云里雾里。最后东拼西凑写了点,便于以后自己学习。 Windows系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创建为较小的DLL(DynamicLinkable Library)文件,并可对它们单独编译和测试。在运行时,只有当EXE程序确实要调用这些DLL模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了EXE文件的大小和对内. 阅读全文
posted @ 2011-09-08 18:39 Livesss 阅读(1272) 评论(0) 推荐(0) 编辑
摘要: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。这和前面我博客的窗口子类化都异曲同工,但是Hook可强大多了,我是这两天才开始看的,所以略知皮毛 阅读全文
posted @ 2011-08-30 20:55 Livesss 阅读(64972) 评论(2) 推荐(3) 编辑
摘要: 在Windows下使用gcc编译器:1.首先介绍下MinGWMinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。 实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。 开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。 所以,使用 MinGW 我们就可以像在 Lin... 阅读全文
posted @ 2011-08-27 16:28 Livesss 阅读(16941) 评论(0) 推荐(2) 编辑
摘要: 解决Fedora 15 Gnome 3 中布局不紧凑,按钮肥大,标题栏太宽问题 阅读全文
posted @ 2011-08-22 18:52 Livesss 阅读(3546) 评论(0) 推荐(0) 编辑
摘要: 这几天都在家里,赶上了暑假,没啥事情可做,就做些小玩意。虽然都没什么技术含量,但自己毕竟是新手,做得不是很好,代码都得参考下别人的。今天看到一个博客上面写的是关于SDK的窗口子类化,什么是窗口子类化,其实说得简单点就是有个多功能的窗口,你对它有绝对的控制权。举个例子好了,你自己写了一个软件,上面有个编辑框,在这里面只能输入“我是笨蛋”,(基本上没人会喜欢你的软件)客户要是想输入其他的,都输不进去。这就有一种思想,软件是我做的,我对它有绝对的控制权。下面简单描述下原理:就拿上面那个例子来说好了,我前面的博客大概介绍了下windows是怎么处理键盘消息的。就拿‘A’键来说,你要是不处理,windo 阅读全文
posted @ 2011-08-09 19:43 Livesss 阅读(307) 评论(0) 推荐(0) 编辑