博客园  :: 首页  :: 联系 :: 管理

文章分类 -  Visual C++ 2005

摘要:用C语言写程序时需要知道是大端模式还是小端模式。所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。因 阅读全文

posted @ 2013-07-12 21:28 sunrack 阅读(496) 评论(0) 推荐(0) 编辑

摘要:一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放 阅读全文

posted @ 2013-07-12 21:27 sunrack 阅读(200) 评论(0) 推荐(0) 编辑

摘要:常见阅读代码的工具有 , visual c++, visual studio + va(visual assistant), 以及 source insight, 这几个功能强大的收费软件 , 目前用得非常多 , 尤其是 Source Insight( 以下简称 SI), 是一个不错的跨平台的软件 . 今天推荐的 Eclipse C++ 版本 , 同样也是一个优秀的开源阅读代码的工具 , 其优越性有甚于 SI, 表现在以下几点 .1. 支持正则表达式快速定位源文件 (SourceInsight 不支持快捷通配符 ) ,2. 快速发现类之间的继承关系 , 并图形化显示 (vs2005 和 sou 阅读全文

posted @ 2012-12-12 03:55 sunrack 阅读(1441) 评论(0) 推荐(0) 编辑

摘要:Most Significant Bit, Last(Least) Significant Bit最高有效位(MSB) 指二进制中最高值的比特。在16比特的数字音频中,其第1个比特便对16bit的字的数值有最大的影响。例如,在十进制的15,389这一数字中,相当于万数那1行(1)的数字便对数值的影响最大。比较与之相反的“最低有效位”(LSB)。 MSB高位前导,LSB低位前导。谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endi 阅读全文

posted @ 2012-12-12 03:42 sunrack 阅读(1369) 评论(0) 推荐(0) 编辑

摘要:Here's the answer(s).I managed to figure out a way of doing it. Include assert.h and place an assertion at the top of your function call. Like this:Code Block#include "stdafx.h" #include <assert.h>BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved 阅读全文

posted @ 2012-06-06 15:42 sunrack 阅读(353) 评论(0) 推荐(0) 编辑

摘要:(转)C++中extern “C”含义深层探索1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量... 阅读全文

posted @ 2009-05-08 10:56 sunrack 阅读(243) 评论(0) 推荐(0) 编辑

摘要:这个是做不到的。 但可以从设计上作一些折衷, (1)假如你是想定义一些该类的所有对象都共享的“常量”,那么可以声明成static const,然后在类外初始化: class MyClass { public: MyClass(); private: static const COLORREF m_c... 阅读全文

posted @ 2008-11-26 13:53 sunrack 阅读(626) 评论(0) 推荐(0) 编辑

摘要:顾名思义,按位运算符允许按照位来操作整型变量。可以把按位运算符应用于任意signed和unsigned整型,包括char类型。但是,它们通常应用于不带符号的整型。 这些运算符的一个常见应用是在整型变量中使用单个的位存储信息。例如标记,它用于描述二进制状态指示符。可以使用一个位来描述有两个状态的值:开或关、男或女,真或假。 也可以使用按位运算符处理存储在一个变量中的几个信息项。例如,颜色值常常记录... 阅读全文

posted @ 2008-07-18 10:54 sunrack 阅读(17287) 评论(0) 推荐(2) 编辑

摘要:... 阅读全文

posted @ 2008-07-16 11:19 sunrack 阅读(257) 评论(0) 推荐(0) 编辑

摘要:1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of ty... 阅读全文

posted @ 2008-07-16 10:00 sunrack 阅读(228) 评论(0) 推荐(0) 编辑

摘要:bmp format table of contents introduction bitmap file format general ... 阅读全文

posted @ 2007-09-14 15:19 sunrack 阅读(509) 评论(0) 推荐(0) 编辑

摘要:LRESULT CALLBACK KeyboardProc(int iCode, WPARAM wParam, LPARAM lParam){ KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam; //Specifies the transition state. //The value ... 阅读全文

posted @ 2007-03-25 13:32 sunrack 阅读(966) 评论(0) 推荐(0) 编辑

摘要:转 很多人都知道,如果想在系统范围内屏蔽键盘上的任意按键需要使用全局键盘钩子,然而像win键这样“倔强”的按键又不是普通的键盘钩子就能搞定的。这里我提供一种利用底层键盘钩子屏蔽任意按键(包括win键)的方法,并且作成了.dll动态链接库,方便以后使用。钩子,是一种相对复杂一点的技术,通常用来监视系统中某一类型的事件,这些事件可以与某一线程相关(线程钩子),也可以是系统中的所有线程(全局钩子)。关于... 阅读全文

posted @ 2007-03-25 13:29 sunrack 阅读(2855) 评论(1) 推荐(0) 编辑

摘要:class GlobalManager{public: static GlobalManager* GetInstance(); protected: GlobalManager(void); ~GlobalManager(void);private: static GlobalManager* CurGlobalManager;}; #include "Globa... 阅读全文

posted @ 2006-12-30 02:28 sunrack 阅读(207) 评论(0) 推荐(0) 编辑

摘要:本主题演示如何将各种 C++ 字符串类型转换为其他字符串。可以转换的字符串类型包括 char *、wchar_t*、_bstr_t、CComBSTR、CString、basic_string 和 System.String。在所有情况下,在将字符串转换为新类型时,都会创建字符串的副本。对新字符串进行的任何更改都不会影响原始字符串,反之亦然。 从 char * 转换 示例 说明 此示例演示如何... 阅读全文

posted @ 2006-12-30 01:07 sunrack 阅读(2086) 评论(1) 推荐(0) 编辑

摘要:在《设计模式》中有一个叫做单件(sigleton)的模式,是用来控制创建唯一对象。书中只讲到了如何建立singleton对象,对于如何来销毁此对象则只字不提。但是对象生命的管理对于c++程序员来说是多么的重要呀。或许singleton只是属于创建模式的一种,大师们认为在这里不应涉及到“销毁模式”。 有人认为sinleton是应该在程序的退出的时候销毁的。但是退出应该是在什么时候呢。请看如下代码:假... 阅读全文

posted @ 2006-12-21 13:15 sunrack 阅读(1243) 评论(0) 推荐(0) 编辑

摘要:刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具。使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能。 一个经典的例子 使用预处理与宏定义最经典的例子莫过于加在一个头文件中以避免头文件被两次编译。试想这种的情况,有一个文件headerfile.h 它被包含在headerfile1.h中,同时... 阅读全文

posted @ 2006-12-18 14:57 sunrack 阅读(671) 评论(0) 推荐(1) 编辑

摘要:C#程序员可以用三个斜杠来开始XML格式的注释,而且编译器可以据此生成可用于自动生成帮助文档的XML文件。Visual C++ 2005中的编译器也支持了这个功能,而且对非托管函数也生效,前提是必须打开/clr和/DOC开关,并且不能使用/clr:oldSyntax开关编译。 阅读全文

posted @ 2006-12-18 09:55 sunrack 阅读(344) 评论(0) 推荐(0) 编辑

摘要:今天在改一个很大的程序,慢慢看,慢慢改。突然发现一个.c文件,里面什么也没有, 就几个头文件,我一看,我靠,这不是把简单的问题搞复杂了吗,随手删掉那个c文件。 结果不能编译了,我靠: fatal error C1083: Cannot open precompiled header file: \'Debug/v13_3.pch\': No such file or directory ... 阅读全文

posted @ 2006-12-18 01:00 sunrack 阅读(2138) 评论(2) 推荐(0) 编辑

摘要:在VC++2005 (CLI-C++)中使用Pwlib和Opal库,界面使用WinForm进行开发,编译选项为 /clr 编译、链接都没有问题,但启动程序时,出现运行时报错_CrtIsValidHeapPointer问题的解决!! 阅读全文

posted @ 2006-12-15 23:40 sunrack 阅读(1165) 评论(4) 推荐(0) 编辑