- 博客(45)
- 收藏
- 关注
原创 Direc3D设备对象
1.创建Direct3D设备对象在创建Direct3D设备对象之前,先需要初始化交换链DXGI_SWAP_CHAIN_DESC。typedef struct DXGI_SWAP_CHAIN_DESC { DXGI_MODE_DESC BufferDesc; DXGI_SAMPLE_DESC SampleDesc; DXGI_USAGE BufferUsage;
2012-01-17 21:58:46 1684
转载 用rand()和srand()产生为随机数的方法总结
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的
2012-01-13 23:26:45 524
原创 Direct3D 11 API 改编自Intro_to_Direct3D10
函数名前缀反映出处于管道的哪个阶段。 IA = Input AssemblerVS = Vertex ShaderGS = Geometry ShaderSO = Stream OutRS = Rasterizer StagePS = Pixel ShaderOM = O
2011-12-22 12:06:09 2007
原创 Direct3D 11设备介绍
ID3D11Device接口:创建资源、列举显示器适配器性能的设备。D3D11CreateDevice、D3D11CreateDeviceAndSwapChain(指定设备类型为D3D_DRIVER_TYPE标志)接口:创建一个设备在指定的硬件设备上。每个应用程序必须至少有一个设备,大部分只需创建一个。每个设备可以使用一个或多个设备上下文,取决功能需要。ID3D11De
2011-12-13 22:18:18 921
转载 微软VC++ 编译器选项
微软C/C++ 编译器选项-优化-/O1最小化空间minimize space/Op[-]改善浮点数一致性improve floating-pt consistency/O2最大化速度maximize speed/Os优选代码空间favor code sp
2011-12-06 20:43:50 1751
原创 Visual Studio 2010 快捷键
高亮显示在编辑器中点击某个符号后IDE会自动将相同符号高亮显示。如果程序很长的话可以使用Ctrl+Shift+向下箭头 或Ctrl+Shift+向上箭头 快速浏览每一个使用该符号的地方。矩形选择框在VS2008中可以通过Alt+鼠标左键 对代码进行选取,VS2010不仅可以选择矩形框,还可以选择零字符宽的矩形框并在其中输入内容。定位搜索编辑(Edit)菜单中选择“Nav
2011-11-12 17:30:57 505
转载 关于warning C4995的屏蔽问题
今天在编一个程序时,出现了一大堆警告:1>c:\program files\microsoft visual studio 8\vc\include\cstdio(33) : warning C4995: “gets”: 名称被标记为 #pragma deprecated1>c:\program files\microsoft visual studio 8\vc\in
2011-10-30 22:23:36 4898
原创 判断一个标准文本文件的编码方式
当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件一般采用三种方式来决定文本的字符集和编码: 检测文件头标识,提示用户选择,根据一定的规则猜测 最标准的途径是检测文本最开头的几个字节,开头字节 Charset/encoding,如下表: EF BB BFUTF-8 FE FFUTF-16/UCS-2, little endian
2011-10-26 19:32:28 906
原创 字符集
从ANSI改到Unicode主要有如下几点: 1.char --> TCHAR 2.字符串前面增加 _T,如"Hello World" 改为 _T("Hello World); 3.strcpy等字符串操作函数改为 StrCpy; 4.LPSTR改为LPTSTR, LPCSTR改为LPCTSTR 5.对于函数定义中使用char、char*类型参数的,需要进行相应的字符串转换
2011-10-20 22:26:13 387
转载 chrome源码学习之知识体系指南
google chrome浏览器的源代码是非常庞大的,为了较快的进入学习状态,有必要事先对一些知识点进行说明,这里不是要详细说明里面的细节,而是从概念层次阐明一些注意事项。这里谈到的东西也不一定说非要事先把这些东西搞得很明白才能去学习源代码,主要还是先给大家一个心理准备。当然如果
2011-07-07 17:00:16 797
转载 chrome源码学习之启动流程简介
先说明一下,我这里采用的chrome源代码版本是4.1.249.1064。如果你采用的不是此版本,则可能和我描述的源代码文件名、代码位置不一致,后续关于chrome的文章均采用此版本,不再另作说明。采用此版本没有任何特殊理由,仅仅是当我开始学习chrome的那个时间点的最新版本而
2011-07-07 16:59:34 1231
转载 chrome源代码目录结构简介(版本4.1.249.1059)
为了对庞大的源码项目进行分析,先对源码目录树作一个简单的介绍,粗略的了解一下各个模块的功能分布情况,chrome源代码src目录下的结构如下图:app:该目录下的代码主要是和各个操作系统平台相关的应用上层代码的提炼。不同操作系统可能对应不同的c++实现文件。比如裁剪板操作、操作系
2011-07-07 16:53:47 1591
翻译 安装depot_tools
<br />chromium和Chromium OS使用一套叫做depot_tools的脚本来管理代码签出和审查。关于depot_tools。<br /> <br /> <br />安装步骤:<br /> 1.取得depot_tools;你可以选择一下这些方式:只读签出(如果你
2011-04-24 13:52:00 31401
翻译 Rietveld
<br /><br /> SVN的代码审查,立于谷歌应用程序引擎。<br /> <br />这个项目显示了如何创建一个用类似于Django写的Web应用程序在谷歌应用程序引擎上。<br /> <br />此外,我希望这将成为一个Python开发人员社区和其他开源社区的实用工具。正如我过去两年在谷歌,我在那里开发了一个类似的工具,名为Mondrian,适当的代码审查的习惯才能真正提高代码库的质量,良好的工具进行代码审查将减轻开发人员的负担。<br /> <br />在这个项目中的一些代码是来自Mondr
2011-04-23 14:24:00 888
原创 Chromium的源码下载和编译
操作系统:Windows 7开发平台:VS2010(其他平台自行研究)预备:1.下载安装VS20102.下载安装DirectX SDK3.下载depot_tools (由于和谐的天朝,请使用代理) http://src.chromium.org/viewvc/chrom
2011-04-22 15:35:00 8871 6
原创 使用STL
<br />可以在任何容器上运作:<br />for (pos = coll.begin(); pos != coll.end(); ++pos) { ....}<br />而下面这样的程序代码就不是所有容器都适用了:<br />for (pos = coll.begin(); pos < coll.end(); ++pos) { ....}<br />两者的唯一区别在于测试循环条件时,第二例使用operator<,第一例使用operator!=。要知道,只有random acc
2011-04-09 20:44:00 751
原创 关联式容器:Sets、Multisets、Maps、Multimaps
1.Sets#include #include int _tmain(int argc, _TCHAR* argv[]){ typedef std::set IntSet; IntSet coll; coll.insert(3); coll.insert(1); coll.insert(5); coll.insert(4); coll.insert(1); coll.insert(6); coll.insert(2); IntSet::co
2011-04-09 17:22:00 713
原创 迭代器(Iterators)
<br />迭代器简介<br />1.容器的iterator类型<br />vector<int>::iterator iter;<br /> <br />2.begin和end操作<br />vector<int>::iterator iter=ivec.begin(); //ivec.end()<br /> <br />3.vector迭代器的自增和解引用运算<br />用解引用操作符(*操作符)来访问迭代器所指向的元素<br />*iter //ivec[0]<br />*iter=0;
2011-04-09 15:06:00 616
原创 模板编译模型
<br /> <br />当编译器看到模板定义的时候,它不立即产生代码。只有在看到用到模板时,如调用了函数模板或调用了类模板的对象的时候,编译器才产生特定类型的模板实例。<br />模板要进行实例化,编译器必须能够访问定义模板的源代码。当调用函数模板或类模板的成员函数的时候,编译器需要函数定义,需要那些通常放在源文件中的代码。<br /> <br />标准C++为编译模板代码定义了两种模板。在这两种模型中,类定义和函数声明放在头文件中,而函数定义和成员定义放在源文件中。两种模型的不同在于,编译器怎样使用来自
2011-04-09 11:00:00 457
原创 宏的注意事项
1.防止错误展开#define abx(x) (((x)>=0)?(x):-(x))#define max(a,b) ((a)>b)?(a):(b))请注意宏定义中出现的所有这些括号,它们的作用是预防引起与优先级有关的问题。例如,假设宏abs被定义成了这个样子:#define abs(x) x>0?x:-x让我们来看abs(a-b)求值后会得到怎样的结果。表达式abs(a-b)会被展开为a-b>0?a-b:-a-b这里的子表达式-a-b不是我们期望的-(a-b),因此上式无疑会得到一
2011-03-27 10:58:00 783
转载 软件开发的流程
软件开发 软件开发的内容是:需求、设计、编程和测试! 需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。 设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。 编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。 测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,
2011-03-26 22:03:00 783
转载 C++资源之不完全导引
C++各大有名库的介绍之C++标准库 标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。1、Dinkumware C++ Library参考站点:http://www.dinkumware.com/P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近
2011-03-25 16:04:00 1220
原创 编程风格
命名冲突与static修饰符 宏的注意事项通常为了利用头文件预编译, 每个每个源文件的开头都会包含一个名为 StdAfx.h 或precompile.h 的文件. 为了使代码方便与其他项目共享, 避免显式包含此文件 (precompile.cc), 使用/FI 编译器选项以自动包含./FI StdAfx.h
2011-03-23 21:28:00 522
原创 Debug Assertion Failed! File:afxwin1.inl Line:22
这种断言估计是常识去load一个未分配的资源id造成的。如果是 dll 的问题:首先分析是哪个函数调用之后,出现 AfxGetResourceHandle()==NULL 的问题;然后, 如果这个 dll 是自己的 MFC 库,在输出函数的时候第一行,使用 AFX_xxx 的那个宏定义; 如果这个 dll 是第三方的,在调用前通过 AfxGetResourceHandle() 保存当前 HANDLE 值,在调用函数之后,调用 AfxSetResourceHandle() 恢复 HANDLE 值; 或者
2011-03-22 23:02:00 10300 1
原创 AfxGetInstanceHandle、AfxSetResourceHandle
<br />MSDN上的。<br /> Visual Studio 2010 - Visual C++AfxSetResourceHandle<br /> <br />Use this function to set the HINSTANCE handle that determines where the default resources of the application are loaded.void AFXAPI AfxSetResourceHandle( HINSTANCE hIns
2011-03-22 22:55:00 5184
原创 Multibyte and Wide Characters
在MSDN上的介绍A multibyte character is a character composed of sequences of one or more bytes. Each byte sequence represents a single character in the extended character set. Multibyte characters are used in character sets such as Kanji. Wide characters are mul
2011-03-22 20:33:00 758
转载 vc 下文件作用的介绍
.dsp 项目参数配置文件,这个文件太重要,重点保护对象。.dsw 工作区文件,重要性一般,因为它信息不我,容易恢复。 以下文件在项目中是可丢弃的,有些文件删除后,VC会自动生成的。 .clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建.ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。
2011-03-21 21:36:00 387
转载 预处理指令#pragma
格式为: #Pragma Para。其中Para 为参数,下面来看一些常用的参数: message 参数 Message 参数能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。code_seg 另一个使用得比较多的pragma参数是code_seg。格式如: #pragma code_seg( ["section-name"[,"section-cl
2011-03-21 20:13:00 475
转载 Microsoft Virtual PC 2007 快捷键
组合键 功能描述主热键:可在"Virtual PC 选项"→"键盘" 中自行设置,默认的为右Alt!注意:自行设置的主热键后不要组合尽量不要和Windows(物理机)系统已有的组合键重复主热键+L 还原虚拟机控制台最小化,将虚拟机控制台移动到最前端.主热键+I 安装虚拟机附件.主热键+回车(ENTER) 虚拟机窗口的全屏和窗口模式之间切换.主热键+DELETE 发送CTRL+ALT+DELETE组合键到虚拟机系统,其功能和"操作"→"CTRL+ALT+DELETE"相同.主热键+P 暂停及恢复虚拟机.主热键
2011-03-03 16:03:00 1767
转载 C++强大背后
在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),后来为泛型而设计的模版,被发现及证明是图灵完备的,因此使C++亦可支持模版元编程范式(template met
2011-01-09 22:02:00 769
转载 设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。
2010-12-16 21:50:00 312
转载 IP寻址排错:不能连接到某一服务器
IP寻址排错是指利用验证IP地址的连通性来判断某一网络中的故障可能出现的地方。 下面介绍下Cisco使用的排错步骤。Sally为一客户机,它此时不能访问连接到位于远端网络的某台服务器。 Cisco推荐使用的排错四步曲第一步 打开DOS窗口并ping 127.0.0.1。这是一个诊断或环回地址,如果你得到一个成功的ping返回,则可以认定你的IP栈是被初始化过的。如果失败,那么你的IP栈失败,并且你需要在这一主机上重新安装TCP/IP。 C:/>ping 127.0.0.1 Pinging
2010-11-27 21:38:00 758
原创 小红伞误报病毒。误删了userinit.exe。使用USB启动技术修复。
首先拿一个U盘,下载一个winpe。我是用http://www.orsoon.com/Soft/9433.html。然后重启机子,使用USB启动模式。在一台机子上在C:/WINDOWS/system32位置复制一个userinit.exe到U盘上。然后把这个userinit.exe复制C:/WINDOWS/system32位置。利用WINPE修改windows系统注册 WINPE进入后利用运行—regedit或者直接找到注册表编辑器,进入,显然打开的是WINPE的注册表信息,没关系找到HKEY_LOCAL_
2010-11-06 12:17:00 1618
原创 容器适配器
除了顺序容器,标准库还提供了三种顺序容器适配器:queue、priority_queue和stack。适配器(adaptor)是标准库中通用的概念,包括容器适配器、迭代器适配器和函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。例如,stack(栈)适配器可使任何一种顺序容器以栈的方式工作。适配器通用的操作和类型size_type 一种类型,足以存储此适配器类型最大对象的长度value_type
2010-10-23 23:43:00 848 2
原创 string类型
string操作string s; 定义一个新的空string对象,命名为sstring s(cp); 定义一个新的string对象,用cp所指向的(以空字符null结束的)C风格字符串初始化该对象string s(s2); 定义一个新的string对象,并将它初始化为s2的副本is >> s; 从输入流is中读取一个以空白字符分隔的字符串,写入sos getline(is, s) 从输入流is中读取一行字符,写入ss1 + s2 把s1和s2串接起来,产生一个新的s
2010-10-23 23:31:00 2146
原创 STL:容器
顺序容器类型顺序容器vector 支持快速随机访问list 支持快速插入/删除deque 双端队列顺序容器适配器stack 后进先出 (LIFO) 栈queue 先进先出 (FIFO) 队列priority_queue 有优先
2010-10-23 23:04:00 487
原创 标准库类型:string vector bitset
stringstring类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内容,以及提供各种有用的操作。#include using std::string初始化string对象的方式string s1; 默认构造函数,s1为空串string s2(s1); 将s2初始化为s1的一个副本string s3("value"); 将s3初始化为一个字符串字面值副本string s4(n, '
2010-10-23 15:36:00 577
原创 复制控制:复制构造函数、赋值操作符、析构函数
复制构造函数(copy constructor)具有单个形参,该形参是对该类类型的引用(常用const修饰)。class Foo {public: Foo(); // 默认构造函数 Foo(const Foo&); // 复制构造函数}用于:A.根据另一个同类型的对象显式或隐式初始化一个对象。 B.复制一个对象,将它作为实参传给一个函数。 C.从函数返回时复制一个对象。 D.初始化顺序容器中的元素。 E.
2010-10-23 15:29:00 574
原创 总线:地址总线,数据总线,控制总线
地址总线:一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。一根导线可以传送的稳定状态只有两种,高电平或是低电平。用二进制表示就是1或0。宽度为N的的CPU最多可以寻找2的N次方个内存单元。数据总线:CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一个字节)。控制总线:CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意
2010-10-23 15:29:00 6356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人