
C/C++
文章平均质量分 78
Canvas
梦想成为一名hacker,致力于c 方面技术研究
展开
-
VC获取当前时间
vc 获取当前时间1.使用CTime类CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime)SYSTEMTIME st;转载 2011-11-28 20:43:32 · 618 阅读 · 0 评论 -
vector的内存释放
vector 中的内建有内存管理,当 vector 离开它的生存期的时候,它的析构函数会把 vector 中的元素销毁,并释放它们所占用的空间,所以用 vector 一般不用显式释放 —— 不过,如果你 vector 中存放的是指针,那么当 vector 销毁时,那些指针指向的对象不会被销毁,那些内存不会被释放。 vector的工作原理是转载 2012-09-06 16:28:26 · 899 阅读 · 0 评论 -
快速排序记录
#include #include #include #include using namespace std;static ncount = 0;//非递归普通快速void exchange(int &a, int &b){ int temp = a; a = b; b = temp;}void prints(int a[], int le原创 2012-09-16 17:29:34 · 397 阅读 · 0 评论 -
获取虚函数指针
先还是看看下面的代码: #include using namespace std; class A{private: int a; int b;public: virtual void vfun0() { cout "A::vfun0"转载 2012-09-16 21:48:54 · 507 阅读 · 0 评论 -
api读取注册表
Win 95及NT的注册数据库(Registry)是系统中非常重要的组成部分。在Win32 API中有一组Reg函数来处理这些问题。其一般的读写过程如下: 1、使用RegOpenKeyEx或RegCreateKeyEx函数打开或创建一个键; 2、如果上一步成功,使用RegQueryValueEx读取子键的值,使用RegSetValueEx设置子键值,使用RegEnumKe转载 2012-09-23 13:28:01 · 877 阅读 · 0 评论 -
perfect shuffle 算法的一个线性复杂度实现
今天又发现一个关于完美洗牌的算法。这个比较简单一些,由 microsoft的Peiyush Jain提出。 原论文: A Simple In-Place Algorithm for In-Shuffle. Peiyush Jain, Microsoft Corporation. 转载 2012-11-05 14:10:49 · 625 阅读 · 0 评论 -
perfect shuffle 算法的一个线性复杂度实现
今天又发现一个关于完美洗牌的算法。这个比较简单一些,由 microsoft的Peiyush Jain提出。 原论文: A Simple In-Place Algorithm for In-Shuffle. Peiyush Jain, Microsoft Corporation. 转载 2012-11-05 14:11:04 · 439 阅读 · 0 评论 -
信号与槽..
信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上。QT支持下列平台:MS/WINDOWS-95、98、NT和转载 2012-11-29 12:23:26 · 512 阅读 · 0 评论 -
MIME类型大全
格式前面为后辍名,后面为对应的MIME型(例如:rar application/x-rar-compressed 表示.RAR对应的是application/x-rar-compressed ) application/vnd.lotus-1-2-3 3gp video/3gpp aab application/x-authoware-bin转载 2012-11-30 11:12:59 · 35704 阅读 · 0 评论 -
EPO技术
什么是EPO?EPO是EntryPoint Obscuring技术的简写,意即入口模糊技术,该技术改变了传统的修改PE头部的入口点,使其指向病毒代码入口而使你的代码得以执行的典型方法。/* 要插入的反汇编代码thunk code: 00401006 . 60 PUSHAD 00401007 . 9C转载 2012-05-18 22:19:52 · 1267 阅读 · 0 评论 -
为什么++i可以作为左值,i++不能作为左值,针对int
(1)首先说左值和右值的定义:变量和文字常量都有存储区,并且有相关的类型。区别在于变量是可寻址的(addressable)对于每一个变量都有两个值与其相联:1).它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值(rvalue,读做are-value).我们也可认为右值的意思是被读取的值(read value)。文字常量和变量都可 被用作右值。2).它的地址值——即存转载 2012-06-07 16:19:38 · 1273 阅读 · 0 评论 -
C/C++文件输入输出操作——FILE*、fstream、windowsAPI
基于C的文件操作在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* Fi转载 2011-11-12 19:47:32 · 487 阅读 · 0 评论 -
防止程序多开方法
最近,一个公司项目要求防止程序多开,采用了几种方法,效果还行。一、使用Mutex 1、原理 创建一个互斥体,并检查它是否已经有拥有者,如果有,表明互斥体已经建立(程序已经启动),否则表明程序未启动。 2、实现 (1)首先创建一个互斥体,CreateMutex函数,第一个参数可以设置为NULL,第二个参数必须设置为false,第三个参转载 2011-12-14 18:29:45 · 1379 阅读 · 0 评论 -
C++中的虚拟继承机制探讨
在谈虚拟继承前让我们先了解一下为什么需要虚拟继承: 多重继承 在多重继承中,基类的构造函数的调用次序既不受派生类构造函数初始化列表中出现的基类构造函数的影响,也不受基类在构造函数初始化列表中的出现次序的影响,它按照基类在类派生列表中的出现次序依次调用相应的基类构造函数。析构顺序与构造顺序逆序进行。 多重继承中,派生类的指针或引用可以转换为其任意基类的指针或引用。因此,转载 2012-03-04 19:53:51 · 495 阅读 · 0 评论 -
const int*和int const*
先看一段代码: 1: char greeting[] = “Hello”; 2: char* p = greeting; //non-const pointer,non-const data 3: const char* p = greeting; //non-const pointer,const data; 4: char* const p = greeting;//c转载 2012-03-06 16:58:10 · 713 阅读 · 0 评论 -
va_start、va_end、va_list的使用
1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...); 2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:#include void fun(int a, ...){int *temp = &a;temp++;for (int转载 2012-03-13 22:16:32 · 312 阅读 · 0 评论 -
函数参数入栈的方式__stdcall等
函数参数入栈的方式 __cdecl,__fastcall, __stdcall 什么区别?--------------------------------------------------------------- 在函数调用过程中,会使用堆栈,这三个表示不同的堆栈调用方式和释放方式。 比如说__cdecl,它是标准的c方法的堆栈调用方式,就是在函数调用时的参数压转载 2012-04-05 23:30:32 · 814 阅读 · 0 评论 -
常用STL容器及算法举例 .
一 常用容器举例 1 vector: vector类似于动态数组,直接访问元素,从后面快速插入或者删除,示例代码如下:[cpp] view plaincopyprint?#include #include //包含vector using namespace std;//指定命名空间 int main() { co转载 2012-04-07 19:05:27 · 549 阅读 · 0 评论 -
c中static的用法
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0. 4)栈——增长方向:自顶向下转载 2012-04-19 21:14:20 · 306 阅读 · 0 评论 -
阻止Spy++之类的工具捕捉软件窗口
我以前用Spy++能轻易捕捉360软件界面,除了一些应用DHTML制作的窗体.昨天我再用Spy++捕捉的时候捕捉不到了,甚至连最外围的对话框都捕捉不到,显然是做了类似拦截API的处理.下面我也模拟一下这种效果,让自己的程序窗口不能被捕捉.Spy++之类的程序一般通过API函数WindowFromPoint和ChildWindowFromPoint来获取指定位置的窗口句柄。拦截一下WindowF转载 2013-04-01 12:55:04 · 1097 阅读 · 0 评论