9 子惑

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 29w+

关于PreTranslateMessage

MFC主线程的消息循环处理函数在Run()当中

2014-04-20 22:03:50

判断链表是否有环的思路,以及验证其正确性

在网上找了下判断单链表是否有环的文章,其中都是说取两个指针,一个指针p1指向头,另外一个指向头指针的下一个结点p2,然后通过循环,循环体中p1每次向下移动一步,p2向下移动两步,如果最终两个指针的值相等则判断有环。这个算法很简单,但是其中转了一个弯,要稍微想下才知道为什么这样能判断单链表有环。假如一个单链表有环,那么最终p2会先进环,p1后进,进了环之后,这个场景就像是围绕着操场跑步,两个

2014-02-12 14:00:37

稀疏矩阵相乘

#pragma onceclass CMatrix{public: CMatrix(void); ~CMatrix(void); bool InitMatrix(int row=3, int col=2, int count_of_number=3);private: int m_nRow; int m_nCol; int m_nTotal; struct Node {

2013-12-03 22:26:21

地址无关代码

什么是地址无关代码?所谓地址无关代码指的是这个代码不管重定位到哪个地址,其代码执行都不会受到影响,代码也不会变。下面就一步一步解释地址无关代码的来源假如有个程序main.cint a;int main(){ a=3; return 1;}大家知道对于全局变量来说其地址是在编译完之后就应经确定了,那么a=3;这句代码转换为汇编代码就是 mov

2013-11-28 10:00:45

CSocket源码分析

CSocket中的Create函数调用Socket()函数,此函数创建套接字,并将套接字和一个窗口关联。然后调用bind绑定套接字。CSocket中的Socket函数调用AttachHandle()中创建CSocketWnd对象并且创建该窗口,随后调用AsyncSelect()将CSocketWnd对象中的窗口和CSocket中的m_hsocket关联

2013-11-14 13:13:09

CArchive源码分析

CArchive的功能:1.CArchive封装了文件的读写操作,使文件读写变的更简单,其内部重载了> 使读写文件如使用cin cout一样2.CArchive提供了缓存机制,使文件操作更高效3.CArchive不仅只是封装文件操作,他还能够结合CMemFile  和 CSocketFile(这些都是CFile的派生类),使对其操作也更简化先看下对DWORD写操作代码:_AFX

2013-11-14 12:32:39

c++底层剖析(1)

首先从带有虚函数的基类派生讲起。class Base{public: Base(){base = 1; cout<<"Base!\n";} virtual ~Base(){cout<<"~Base!\n";} virtual void say(){cout<<"hello Base\n";} int base;};class Derive : public Base{

2013-10-19 15:56:03

表达式求值 C++版

简单的实现了下表达式求值,不过没有进行输入表达式的检验,检验蛮复杂的,留待以后!!!1#pragma once#include using namespace std;#include #include class CExp{public: CExp(void); ~CExp(void); // 获得运算符的优先级 int GetPriority(char ch,boo

2013-10-14 13:24:13

GDI+ 编译问题

当写一个gdi+的程序时,如果编译的过程中出现一大堆的错误,如:1>c:\program files\microsoft sdks\windows\v6.0a\include\gdiplusimaging.h(74) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>c:\program files\microsoft sdks\w

2013-09-27 15:19:30

MDI 注意事项笔记

在框架窗口的窗口过程中处理wm_command消息时, 要加上default: 然后将消息传给子窗口,最后还要将消息继续传给DefFrameProc,如果不传给DefFrameProc的话当子窗口最大化后 在点击还原按钮将无法还原,另外当点击菜单上子窗口的窗口列表时将无法激活所选中的子窗口,考虑原因是对于菜单上的子窗口列表的相应是由DefFrameProc处理,当不传给他时将无法得到默认的处理

2013-08-24 08:30:14

王艳萍的windows程序设计中的框架

程序代码:class CMyApp : public CWinApp{public:    virtual BOOL InitInstance();};class CMainWindow : public CWnd{public:    CMainWindow();protected:    char m_szText[1024];    //

2013-05-20 00:00:13

窗口,视口图解

SetWindowExtEx  SetViewportExtEx 这两个函数是设置设备坐标和逻辑坐标的一个比例关系并且只能用在MM_ANISOTROPIC MM_ISOTROPIC这两种模式, 如:       SetWindowExtEx(hdc, 2, 3, NULL);  SetViewportExtEx(hdc, 1, 1, NULL);  假设映射模式是MM_ISOTROPIC,那么

2013-05-13 14:25:50

windows内核情景分析———系统调用分析

今天看了下windows内核情景分析中的系统调用这章,对于系统调用的一个大概过程有了一定的了解!            就拿书上的ReadFile这个API来说,首先这个API是在用户空间的,所以能够直接调用,然后在这个函数的内部会调用NtReadFile这个中介函数(这个在ntdll.dll中也是用户空间),当然内核中也有一个同名的函数,ntdll.dll中的这个NtReadFile函数

2013-05-12 22:54:26

汇编代码出错,检查方法

汇编学习了一段时间,今天试着练习下,以前都没用汇编写过什么东西,今天就今天写代码遇到的问题总结下:下面这些都是一些很低级的问题,都是针对刚开始写汇编代码的人(masm32)1.关于汇编语法错误查错思路:首先第一点,我用的是Radasm出错时出错位置不一定就是真正出错的地方,可能是前面或后面的语句第二点,要注意定义的函数要放在代码段里,并且要放在end xxx之前,当出现链接错误,未

2013-04-22 17:15:36

堆栈操作之———神奇的代码

下面看一段神奇的代码,这段代码运行之后结果是:hello!haha!//主程序#include using namespace std;unsigned int retAddr;void printhaha(){int a;*(int *)(&a+2) = retAddr;           cout}void printhello(){

2013-04-08 22:21:07
勋章 我的勋章
    暂无奖章