- 博客(14)
- 资源 (3)
- 收藏
- 关注
原创 纯虚析构函数
#includeusing namespace std;class A{public: virtual void hehe() =0 { cout<<"A"<<endl; }};class B : public A{ void hehe() { cout<<"B"<<endl; } };
2014-04-26 21:40:10 1121
转载 各种同步机制的分析比较---摘抄 留给本人自己看
管程一、信号量的缺点信号量的使用一定要小心,如下图中解决生产者-消费者问题的程序:如果在producer的执行函数中,将empty与mutex的down操作互换,如果此时mutex为0,将首先对mutex进行down操作,进程陷入阻塞,而同时,当consumer的执行函数执行到down(&mutex)的时候,由于mutex为0,因此,co
2014-04-21 21:14:25 1003
原创 面试经验摘抄-留给自己看
当你决心把一个项目写入你的简历中,你就一定要能回答出面试官的如下问题:1、你负责了哪一块?这个问题是想知道这个项目里究竟有哪些代码是你写的,尤其是多人合作的项目。你必须强调你所做的工作。问题就出来了。很多时候我们参与的项目,他的架构、核心技术你并不熟悉,而仅仅是写了部分逻辑代码,那怎么办呢?解决办法是,花时间去了解项目的核心,对项目的整体有清晰的认识,至少要达到能够表述的很清楚的程
2014-04-21 19:41:56 1022
原创 rootkit概念摘抄
Rootkit是指其主要功能为隐藏其他程式进程的软件,可能是一个或一个以上的软件组合;广义而言,Rootkit也可视为一项技术。
2014-04-14 20:01:37 898
原创 进程隐藏的各种方法 以及分析比较以及实现链接
一、最为古老的DLL注入方法。 虽说古老,但也经历了不少变动,最初的win9X的系统没有Psapi,没有进程快照,所以一般是三级跳。跳啊跳……NT下可以直接用OpenProcess打开进程(打不开的话,提权到Debug权限),利用LoadLibrary,并且申请远程地址空间,然后把DLL注入到目标EXE进程当中,可谓省时省力,这也是目前应用作为普遍的方法之一。
2014-04-08 20:59:08 13805 1
原创 volatile修饰符
volatile它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.不进行优化如 a = 3; a = 4; a = 5;编译器优化后会只执行a[1] = 5 这一句话 若对a进
2014-04-07 21:58:34 713
原创 函数的调用约定 __stdcall __cdecl __fastcall
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。_stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右
2014-04-07 20:31:18 894
原创 c++ 笔试面试题 难题精选 持续更新
//第一题 问下面的输出结果是 什么?#include #include using namespace std;class A{protected: int m_data;public: A(int data = 0) { m_data = data; } int GetData() { return doGetData(); } virtual int
2014-04-06 19:42:08 2466
原创 c++的一些默认函数
定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); //
2014-04-05 19:40:27 813
原创 CString 中的getbuffer ReleaseBuffer
getbuffer 这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容。在使用getbuffer之后要马上调用ReleaseBuffer 如果你使用这个指向由GetBuffer所改变返回的字符串内容,那么在你使用CString其他CString方法之前你必须调用ReleaseBu
2014-04-03 17:57:42 879
原创 利用互斥变量在mfc中使得程序只有一个实例方法
BOOL CTextApp::InitInstance(){ HANDLE hMutex=::CreateMutex(NULL,TRUE,"text");//text可以随便取一个唯一的名字 if (hMutex!=NULL) { if (GetLastError()==ERROR_ALREA
2014-04-03 16:38:54 1488
原创 用sockaddr_in 而不用sockadd的原因
用sockaddr_in 而不用sockadd的原因sockaddr其定义如下:struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };说明:
2014-04-02 17:02:47 1999
minix3 完整源码 28864行 带英语注释 部分中文注释 个人添加
2014-07-31
rar for linux 以及安装方式
2013-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人