随笔分类 - C++
摘要:1.“static_cast/强制转换”后普通函数、虚函数的表现A基类B子类实例aPtr:将B实例强制抓换得到的A实例实例bPtr:将A实例强制转换得到的B实例总结:(1)aPtr因为是从B实例强制转换过来的,所以虚函数始终调用B的虚函数实现bPtr因为是从A实例强制转换过来的,所以虚函数始终调用A...
阅读全文
摘要:int const A::func() { return 0; }int A::func() const { return 0; } 上面的代码是合法的,其中A::func成员函数[只能在成员函数后面加上const修饰符]是一个重载成员函数,两个函数都返回int类型数据(注意:对于C/C++,返回类...
阅读全文
摘要:调试是软件开发周期中的一个很重要的部分,有时很有挑战性,有时候则让程序员迷惑,有时候让程序员发疯,但是。可以肯定的是,对于任何不是太那个微不足道的程序来说,调试是不可避免的。近年来,调试工具的发展已经使得很多调试任务简单省时了。本文总结了十个调试技巧,当你使用VS的时候可以节省你很多时间。1.悬停鼠标查看表达式调试有时候很有挑战性,当你步入一个函数想看看哪块出错的时候,查看调用栈来想想值是从哪来的。另一些情况下,则需要添加一些监视表达式,或者查看 局部变量列表,这通常还是花费一些时间的,但是。如果你把你鼠标指向你感兴趣的一个变量。你会发现事情简单多了。而且,类和结构体可以通过单击展开。这 样。
阅读全文
摘要:c++编程中的调试技巧2010-01-19 22:27257人阅读评论(0)收藏举报1.调试标记 适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef 和#endif 进行管理。当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失。常用的调试标记为DEBUG, 语句序列: #define DEBUG #ifdef DEBUG 调试代码#endif2.运行期间调试标记 在程序运行期间打开和关闭调试标记。通过设置一个调试bool标记可以实现。这对命令行运行的程序更为方便。例如下面代码 #include<iostream>#include &l
阅读全文
摘要:自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,在这里把Visual C++开发工具与调试技巧整理摘录如下,希望对大家有用,省去大家再去搜索的烦恼。 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。 注:只是一个介乎Debug和Release的中间状态,
阅读全文
摘要:http://www.cnblogs.com/cjyang/archive/2010/10/21/1855169.html
阅读全文
摘要:FILE是在stdio.h定义的保存文件流信息的一个结构体类型(也可能是在其它文件中定义了另外的数据类型,然后通过typedef定义FILE)。注意它本身是类型而不是结构体名,所以FILE类型在字面上虽然不包含struct,但实际表示一个结构体。FILE变量中保存的不止是文件路径,还有缓冲区指针、读写方式等一系列信息(具体实现不一定相同)。一般使用FILE*类型变量表示文件句柄,通过它来访问FILE结构体,对文件进行操作。FILE**是指向FILE*的指针。现在考虑定义一个基类型为FILE*的数组,那么它的数组名就是const FILE**类型的地址常量(经过传递后退化成FILE**指针):F
阅读全文
摘要:#include<iostream>#include<fstream>using namespace std;void main(){ int a; int c; ifstream in ("abc.txt"); in>>a; in.close(); in.clear(); ofstream file("abc.txt", ios::out | ios::app); file<<5; //输入一个数如5 file.close(); file.clear(); in.open("abc.txt&qu
阅读全文
摘要:在win7(windows7 ultimate SP1)下成功安装VS2010(Visual Studio 2010 ultimate x86)。下载glut:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip(参见:http://www.opengl.org/resources/libraries/glut/glut_downloads.php)原文讲:If you want just the GLUT header file, the .LIB, and .DLL files all pre-compiled
阅读全文
摘要:OpenGL开发环境简介 基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。OpenGL函数命令方式十分有规律,每个库函数均有前缀gl、glu、aux,分别表示该函数属于OpenGL基本库、实用库或辅助库。Windows NT下的OpenGL包含了100多个核心函数,均.
阅读全文
摘要:Google已经发布了Android SDK 2.1版本(PS:已经有2.2了 大家可以下载,但只收到windows版的,其他系统的朋友可以自己查找下).下面给朋友们介绍一下安装2.1的 Android 模拟器 Emulator模拟器的方法:JAVA JDK 下载http://192.18.108.239/ECom/EComTicketServlet/BEGIN31DA9601C7CEF4A95D66372DE469CD8C/-2147483648/2617791231/1/877946/877778/2617791231/2ts+/westCoastFSEND/jdk-6u5-oth-JPR
阅读全文
摘要:看PST代码很多天了,里面的读写流程看懂了,又忘了,再看,再忘,归咎于笔记的不完善与可读性差, 今天开始学习流程图.下面介绍一下标准程序流程图的符号及使用约定一,引言程序流程图(Progran flowchart)作为一种算法表达工具,早已为工国计算机工作者和广大计算机用户十分熟悉和普通使用.然而它的一个明显缺点在于缺乏统一的规范化符号表示和严格的使用规则.最近,国家标准局批准的国家标准(GB1525-89)<<信息处理--数据流程图,程序流程图,系统流程图,程序网络图和系统资源图的文件编制符号及约定>>为我们推荐了一套标准化符号和使用约定.由于该标准是与国际标准化组织
阅读全文
摘要:摘要:将多个音频文件或多路音频数据同时输出到音频输出设备上,就可同时听到多个不同的声音,这就是混音。在游戏开发,网络视频会议开发中都会用到混音技术,本文详细介绍如何利用Directsound实现几路不同的音频进行实时的混音。 关键词:Directsound 混音 在游戏开发中比较常用的音效素材都是比较短的,所以一般常用的API是playsound()函数,比如我们要在游戏背景中播放一个test.wav音效素材,只要简单的调用下面的函数即可PlaySound("test.wav",NULL,SND_FILENAME|SND_ASYNC); 如此简单,事实上我们看到,国内的游戏
阅读全文
摘要:啥叫混音呢,其实很简单,如果两个人同时说话 ,他们俩发出的声波在空气中进行了波的叠加,这其实就是个混音。计算机的混音,其实是一个虚拟的混音操作,因为计算机其实是只有一个声源(现在的计算机通常有两声道甚至5声道的立体声,先忽略这些,我们先抽象,把计算机看作一个声源),通过在计算机内部进行运算,把两个波形进行叠加运算,然后由计算机唯一的音箱输出,这就是计算机混音技术。微软的API PlaySound是不支持混音的,调用一个PlaySound的时候,会终止上一个PlaySound调用所播放的声音(异步调用),如果要用PlaySound来实现混音效果,就需要自己写一个混音算法。幸运的是,该叠加算法不需
阅读全文
摘要:1.DirectSound是Unicode编码的,但是一般程序是Ansi编码的,于是弄了几天的混音效果无法移植到DS游戏中去了,重新来过,换思维,打算由网上提过的基础API开始进行实现.
阅读全文
摘要:一.CString与LPCWSTR 两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。 CString转换成LPCWSTR 方法一:CString strFileName; LPCWSTR lpcwStr = strFileName.AllocSysString(); 方法二:CString str=_T("TestStr"); USES_CONVERSION; LPCWSTR lpcwStr = A2CW((LP
阅读全文
摘要:如何理解LPCTSTR类型?L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。P表示这是一个指针C表示是一个常量T表示在Win32环境中, 有一个_T宏这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。同样,
阅读全文
摘要:一.CString与LPCWSTR两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。CString转换成LPCWSTR方法一:CString strFileName;LPCWSTR lpcwStr = strFileName.AllocSysString();方法二:CString str=_T("TestStr"); USES_CONVERSION; LPCWSTR lpcwStr = A2CW((LPCSTR)
阅读全文
摘要:CString 头文件#include <afx.h>string 头文件#include <string.h>CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString
阅读全文

浙公网安备 33010602011771号