C++
Dark_Passion
这个作者很懒,什么都没留下…
展开
-
异步线程任务封装
Chrome异步任务实现,多线程任务封装非常有用原创 2014-06-07 13:13:11 · 1566 阅读 · 0 评论 -
JMP、Hook
#include "stdio.h"#include "tchar.h"#include "windows.h"//offset=目标地址-(jmp指令起始地址+5)//跳转指令解码:[0xe9][offset]// offset:有符号整型,四字节.它等于jmp指令的下一指令地址到目标地址的相对距离// 计算公式:// offset=目标地址-(jmp指令起始地址+5)转载 2012-11-06 11:57:15 · 1969 阅读 · 0 评论 -
createThread--Dll注入
#include#includeBOOL EnableDebugPrivilege(){ HANDLE HToken = NULL; LUID SaveDebugNameValue; TOKEN_PRIVILEGES Token_Privilege; if(0==OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS原创 2012-10-25 16:39:50 · 1808 阅读 · 1 评论 -
DLL应用基础知识
以下是自己看到比较的讲解关于代码入注博文。VC++的DLL应用win32代码入注VC++代码入注dll入注和代码入注进程保护和隐藏#include "stdafx.h"#include#include#include #include #include #include #define MAXWAIT 256typedef str原创 2012-10-30 09:51:25 · 625 阅读 · 0 评论 -
placement new深入理解
placement new的含义placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。void *operator new( size_t, void *p ) throw() { return p; }placement n原创 2011-11-03 15:44:21 · 891 阅读 · 2 评论 -
strtok--字符串处理
#include#includeusing namespace std;int main (){ char sentence []= "this is a sentence with 7 tokens"; cout <<"this string to be tokenized is "<<endl<<sentence<<endl; char *tokenp=strt原创 2011-10-23 16:39:11 · 706 阅读 · 1 评论 -
单例模式
/****单例模式要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。***/#include using namespace std;class CSingleton{ public: static原创 2011-10-10 15:57:34 · 400 阅读 · 0 评论 -
判断n是否为2的幂
//判断n是否为2的幂#includeint foo( int i );int foo_(int i);int foo_1(int );int main(){ int bool1=foo(1); bool1=foo_(1024); bool1原创 2011-10-11 14:32:02 · 1119 阅读 · 0 评论 -
explicit
/***explicit.cppC++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。**/#includeusing namespace std;class A{p原创 2011-10-09 13:38:28 · 363 阅读 · 0 评论 -
螺旋数组
#include#includeusing namespace std;int a[10][10]= {0};void fun(int n){ int i, j , m=1; for ( i=0; i<n/2; i++) {原创 2011-10-09 12:42:58 · 486 阅读 · 0 评论 -
WTL配置
fatal error C1083: Cannot open include file: 'atlapp.h': No such file or directory1、下载WTL包、修改\AppWiz\setup80.js文件 try { //var strVC8Key = "HKLM\\Software\\Microsoft\\VisualStudio\\8.0\\Setu原创 2012-11-06 16:59:31 · 1590 阅读 · 0 评论 -
define
#define总结 (网上资料汇集)1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用.2. 定义简单的函数:注意多使用括号define可以像函数那样接受一些参数,如下:#define max(x转载 2012-11-08 11:59:10 · 541 阅读 · 0 评论 -
DXUT框架 学习笔记
友情提醒:所谓的框架是指SDK目录下\Samples\C++\Common路径下的DXUT系列函数包装。学习框架的前提是必须有足够的Windows API,GUI编程经验,必须熟悉Windows的消息机制,回调机制,最好有万行左右的C/C++编程经验。MFC在这里没有任何用处。另外我觉得最好在看程序之前对于D3D的所有概念有点了解,什么是vertex,texture,matrix,lighting转载 2012-11-15 11:42:41 · 926 阅读 · 0 评论 -
Task任务简单封装
#ifndef _TASK_INFO_H_#define _TASK_INFO_H_/**用法class ClassA{ BOOL Test(BOOL ddx);}typedef BOOL(ClassA::*PCLSAfn)(BOOL);PCLSAfn pfnTest = &ClassA::Test;ClassA* pClassA = new ClassA;sTaskInfo ta原创 2014-06-06 10:18:23 · 1455 阅读 · 0 评论 -
CString
1.CString分别在MFC、WTL、ATL中都有实现,但是用法基本一样。//using cstringtypedef CHAR *LPSTR;typedef WCHAR *LPWSTR;#ifdef UNICODE typedef LPWSTR LPTSTR;#else typedef LPSTR LPTSTR;#endifATL::CStringA原创 2013-09-27 17:12:08 · 721 阅读 · 0 评论 -
C++堆与栈的区别
C++堆与栈的区别 转载:http://blog.chinaunix.net/space.php?uid=589727&do=blog&id=2732643一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几转载 2011-09-13 17:18:23 · 349 阅读 · 0 评论 -
base64
#ifndef _BASE64_H_#define _BASE64_H_#include std::string base64_encode(unsigned char const* , unsigned int len);std::string base64_decode(std::string const& s);#endif// base64.cpp#include "std原创 2013-09-26 22:56:27 · 809 阅读 · 0 评论 -
utf-8和ANSI
1.utf8保存文件绝对是没有问题,可以有bom和无bom格式,并且支持多个多国家语言。2.ansi保存中文会出现乱码情况。#if USE_UTF8 FILE* f = _wfopen(_T("t.log"), _T("w+, ccs=UTF-8")); if (f) { wchar_t wbuffer[30]; wmemset(wbuffer, 0, _countof(w原创 2013-09-25 23:23:25 · 958 阅读 · 0 评论 -
bitmap保存
void SaveBitmap(DWORD height, DWORD width, char* pdata) { BITMAPFILEHEADER bmfHeader = {0}; BITMAPINFOHEADER bi = {0}; bi.biSize = sizeof(BITMAPINFOHEADER); bi.biWidth = bmpSc原创 2013-10-11 23:36:35 · 2865 阅读 · 0 评论 -
VC开发使用工具套件
这里推荐经常需要使用的工具套件,其中小工具比较多就不一一介绍了。Process Explorer进程查看器Process Monitor进程监控 (这个非常强大)SysinternalsSuite下载地址:http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx原创 2013-08-07 15:48:15 · 758 阅读 · 0 评论 -
CFileDialog文件过滤
LPCTSTR lpcstrFilter = _T("All Files (*.*)\0*.*\0") _T("Text Files (*.txt)\0*.txt\0") _T("C++ Files (*.cpp)\0*.cpp\0") _T("Include Files (*.h)\0*.h\0") _T("C Files (*.c)\0*.c\0") _T("Inline Fil原创 2013-06-03 18:39:29 · 2534 阅读 · 0 评论 -
手把手教你如何配置和编译ogre 1.7.0 + cegui 0.7.1
转载地址ogre 1.7.0的下载、配置和编译指南----------------------------------------------- 1. ogre 1.7.0的下载地址:https://sourceforge.net/projects/ogre/files/ogre/1.7/ogre-v1-7-0.zip/download2. ogre 1.7.0转载 2012-11-15 16:35:28 · 565 阅读 · 0 评论 -
虚继承--内存布局
#include#include#includeusing namespace std;class A{ char k[3];public: A() { k[0]='1'; k[1]='2';原创 2011-10-09 16:08:01 · 472 阅读 · 0 评论 -
iostream
#includeclass MyOutStream{public: const MyOutStream & operator <<(int value) const; const MyOutStream & operator <<(char *value)原创 2011-10-06 18:44:55 · 448 阅读 · 1 评论 -
算法--职前算法复习
1,strcpy//返回的是目标串的地址,这样支持连续的运算表达式,已测试char *strcpy(char *strDest, const char *strSrc){//源串一定要const修饰 assert((strDest!=NULL)&&(strSr转载 2011-10-07 13:11:49 · 3164 阅读 · 0 评论 -
指针-字符处理-字符旋转
#include #include void rotate(char *start, char *end){ while(start != NULL && end !=NULL && start<end) { char temp=*star原创 2011-09-25 12:41:25 · 402 阅读 · 1 评论 -
delete和delete[]区别
大家都知道new和delete,new[]和delete[]要配对使用,但并不是所有人都知道delete和delete[]究竟有什么区别。有人会说delete不就是删除对象,delete不就是删除数组的嘛。这样的说法应该只能说对了一半。的确,delete[]是用来释放数组转载 2011-09-15 21:11:04 · 585 阅读 · 1 评论 -
c_str string 转换成char
string 转换成charc_str函数的返回值是const char*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。 #include #include using namespace std; void main()原创 2011-09-15 20:37:13 · 2985 阅读 · 0 评论 -
华为机试题目2011-09-14 10:30-11:30
#include#includevoid changestr(const char *pIn,char *pOut){ int Len_In=strlen(pIn); int len=0; int i=1,j=0; pOut[len++]=p原创 2011-09-14 12:22:36 · 974 阅读 · 1 评论 -
c++引用和指针的比较
引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝原创 2011-09-13 20:59:44 · 398 阅读 · 0 评论 -
C++ static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字stati原创 2011-09-13 20:50:57 · 332 阅读 · 0 评论 -
C++引用深入探讨
一个地址本身也是占内存的,只是它指向的东西不用再复制一次了转自:http://blog.chinaunix.net/space.php?uid=589727&do=blog&id=2732640引用的声明: 基本格式:引用类型 &引用名=被引用原创 2011-09-13 19:38:44 · 365 阅读 · 1 评论 -
虚函数与纯虚函数
虚函数与纯虚函数 转自:http://blog.chinaunix.net/space.php?uid=589727&do=blog&id=2732646虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象转载 2011-09-13 17:16:01 · 356 阅读 · 0 评论 -
C++中的vector使用范例
C++中的vector使用范例 (2008-04-21 11:31)1.vector 的数据的存入和输出:#include#include#include using namespace std;void mai转载 2011-09-13 17:13:20 · 358 阅读 · 0 评论 -
exit--系列
C语言中return与 exit的区别语言中的return, exit, break, continue。前两个函数使用的同时通常都会带上程序退出时的状态码,标准C中有EXIT_SUCCESS和EXIT_FAILURE两个宏,位于/usr/include/stdlib.h中。原创 2011-10-11 21:40:08 · 614 阅读 · 0 评论 -
exit--系列
/***** 调试环境 codeblocks 10.05*****/#include#include#includeusing namespace std;class test{public : test (int i) {原创 2011-10-11 21:22:22 · 414 阅读 · 0 评论 -
c++--多态详解
#include #includeusing namespace std;class B{public: void vf() { cout << "This is class B" << endl; }};class D:原创 2011-10-04 15:08:04 · 697 阅读 · 3 评论 -
cin--sacnf--cin.get()--gets()
1. cin,cin.get,cin.getlinecin读入数据遇到空格结束;丢弃空格符,输入回车符结束,很正常。cin.get用来读取字符,输入回车符结束,但是不丢弃回车符和空格符。注意:cin.get()与cin.get(char)等价,但是cin.ge转载 2011-10-06 18:23:44 · 791 阅读 · 0 评论 -
map--初步学习STL
// map::get_allocator#include #include #includeusing namespace std;int main (){ int psize; map mymap; pair* p; // a原创 2011-10-08 15:15:20 · 554 阅读 · 0 评论 -
queue--初步学习STL
#include#includeusing namespace std;int main(){ queue qu1; int i; for (i=0;i<10;i++) { qu1.push(i); } //原创 2011-10-08 13:19:11 · 467 阅读 · 0 评论