Welcome 微信登录

首页 / 软件开发 / C++

波形捕捉:(8)使用“捕捉缓冲区”

波形捕捉:(8)使用“捕捉缓冲区”

波形捕捉:(8)使用“捕捉缓冲区”2011-06-02 cnblogs stg609译捕捉一个声音包括以下步骤:1.通过调用IDirectSoundCaptureBuffer8::Start方法启动缓冲区。正规来说 ,你应该设置DSCBSTART_LOOPING 作为dwFlags参数,这样这个缓冲区将持续运 行而不是当到达缓冲区末尾后就停止。从输入设备上获取的音频数据从缓冲区起 始处开始填充。2.等待直到达到期望的数据量。一个决定什么时候捕捉指针到达特定...
波形捕捉:(9)写入到WAV文件

波形捕捉:(9)写入到WAV文件

波形捕捉:(9)写入到WAV文件2011-06-02 cnblogs stg609译WAV文件为资源交换文件格式(RIFF),包括若干数量的命名块,其中包含头 信息(如声音采样格式)或数据(如样本本身)。Win 32 API提供了打开关闭 FIFF文件、查找块等函数。这些函数的名字都以“mmio”开头。DirectSound API 不包括写入WAV文件的方法。但是 DXUTsound.cpp 文 件实现了一个 CWaveFile ...
C++类模板的三种特化

C++类模板的三种特化

C++类模板的三种特化2011-06-02说起C++的模板及模板特化,相信很多人都很熟悉,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了模板特化的几种类型,一是特化为绝对类型;而是特化为引用,指针类型;三是特化为另外一个模板类。这里用一个简单的例子来说明这三种情况:// general versiontemplate<class T>class Compare{public:static bool IsEqual(const ...
基于流模式长连接的简单实现

基于流模式长连接的简单实现

基于流模式长连接的简单实现2011-06-02 csdn博客 基于流模式的长连接我们可以做很多事情,比方说在局域网内,我们建立这种模式,可以时时传输数据,而不用每次传输数据是创建socket,传输完后,关闭socket。可以减少创建销毁socket的时间。基于流模式的下,数据一直在发送,我们需要知道,每次发送数据量,所以常见的方式时,我们在发送数据时,指定此次发送数据的长度,服务器读取流数据时,先读取数据长度,然后再按长度读取此次发送的数据。我使用sele...
C/C++误区三:强制转换 malloc() 的返回值

C/C++误区三:强制转换 malloc() 的返回值

C/C++误区三:强制转换 malloc() 的返回值2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss首先要说的是,使用 malloc 函数,请包含 stdlib.h(C++ 中是 cstdlib) ,而不是 malloc.h .因为 malloc.h 从来没有在 C 或者 C++ 标准中出现过! 因此并非所有编译器都有 malloc.h 这个头文件。但是所有的 C 编译器都应该 有 stdlib.h 这个头文件。在 C++ 中,强制...
C/C++误区四:char c = getchar();

C/C++误区四:char c = getchar();

C/C++误区四:char c = getchar();2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返 回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返 回值类型都是 int 型,当这些函数读取出错或者读完文件后,会返回 EOF.EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 E...
C/C++误区五:检查 new 的返回值

C/C++误区五:检查 new 的返回值

C/C++误区五:检查 new 的返回值2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss首先澄清一下,这个误区仅对 C++ 成立,这里不过是沿用“C/C++ 误区”这个衔头罢了。我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用...
C++ Builder初级调试技术

C++ Builder初级调试技术

C++ Builder初级调试技术2011-06-04有很多是可以用调试来看到问题所在.只是初学者不知道有这些东东,即使知道也不是如何去用.我曾经也是这样.从第一本入门书 BUG 一直困扰自己, 常常用ShowMessage("xxxx");来观察程序运行现象.因为本人只学过TC 在TC中代码写的不很长,程序流程自己很清楚,也就没去使用TC的调试器,好象它没有集成的调试器. 在BCB下,程序流程总是跳来跳去不象TC下样结构化编程序样条理...
C++实现爆炸后的振动效果

C++实现爆炸后的振动效果

C++实现爆炸后的振动效果2011-06-04在许多游戏软件中,我们经常能看到这样的场面:当某一设施爆炸后,屏幕画面会伴随着轻微的振动,使人感到身临其境。笔者编写了一个函数void MoveView(int x,int y);通过CRT控制器将屏幕视角左上角坐标移至 (x,y)处,使画面相对移动,从而产生振动效果。程序由Borland C++ 2.0编写,采用VGA 12H模式,代码小、速度快、运行效果形象逼。// filename: SHAKE.cpp/...
C++类的设计习惯及头文件重复包含问题的解决

C++类的设计习惯及头文件重复包含问题的解决

C++类的设计习惯及头文件重复包含问题的解决2011-06-04在设计一个类的时候,通常是将类的定义及类成员函数的声明放到头文件(即.h文件)中,将类中成员函数的实现放到源文件(即.cpp)中。对于animal类需要animal.h和animal.cpp两个文件,同样,对于fish类需要fish.h和fish.cpp。对于main()函数,我们把它单独放到EX10.cpp文件中。往一个现有工程添加头文件(.h文件)或源文件(.cpp文件)有两种方式:一种是...
C++计算四则表达式的模板

C++计算四则表达式的模板

C++计算四则表达式的模板2011-06-04雨中飞燕一个很方便的C++函数模板,可以并 且只可以计算含括号的四则表达式,只有一个函数接口:int GetExpValue (_Tstream& istrin, _T& nReturn)参数解释:istrin: 一个输入流,可以是标准IO流,可以是文件流,也可以是串流nReturn:用于接收计算结果的变量,计算所使用的类型由这个变量确定返回值:返回非0表示计算成功,0表示计算失败有错误程序代码...
C++风格的文件输入输出流

C++风格的文件输入输出流

C++风格的文件输入输出流2011-06-04 csdn博客 lanyu051输出主要由重载的左移操作符(<<)来完成,输入主要由重载的右移 操作符(>>)完成。>>a表示将数据放入a对象中。<<a表示将a对象中存储的数据拿出。接下来我们继续看一 下C++风格的串流控制,C++引入了ostringstream、istringstream、 stringstream这三个类,要使用他们创建对象就必须包含sstr...
<< 131 132 133 134 135 136 137 138 139 140 >>