该文被密码保护。 阅读全文
posted @ 2012-02-13 14:29 何解一直犯相同错误? 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 摘要:将多个音频文件或多路音频数据同时输出到音频输出设备上,就可同时听到多个不同的声音,这就是混音。在游戏开发,网络视频会议开发中都会用到混音技术,本文详细介绍如何利用Directsound实现几路不同的音频进行实时的混音。 关键词:Directsound 混音 在游戏开发中比较常用的音效素材都是比较短的,所以一般常用的API是playsound()函数,比如我们要在游戏背景中播放一个test.wav音效素材,只要简单的调用下面的函数即可PlaySound("test.wav",NULL,SND_FILENAME|SND_ASYNC); 如此简单,事实上我们看到,国内的游戏 阅读全文
posted @ 2012-02-13 10:09 何解一直犯相同错误? 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 啥叫混音呢,其实很简单,如果两个人同时说话 ,他们俩发出的声波在空气中进行了波的叠加,这其实就是个混音。计算机的混音,其实是一个虚拟的混音操作,因为计算机其实是只有一个声源(现在的计算机通常有两声道甚至5声道的立体声,先忽略这些,我们先抽象,把计算机看作一个声源),通过在计算机内部进行运算,把两个波形进行叠加运算,然后由计算机唯一的音箱输出,这就是计算机混音技术。微软的API PlaySound是不支持混音的,调用一个PlaySound的时候,会终止上一个PlaySound调用所播放的声音(异步调用),如果要用PlaySound来实现混音效果,就需要自己写一个混音算法。幸运的是,该叠加算法不需 阅读全文
posted @ 2012-02-13 06:15 何解一直犯相同错误? 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 1.DirectSound是Unicode编码的,但是一般程序是Ansi编码的,于是弄了几天的混音效果无法移植到DS游戏中去了,重新来过,换思维,打算由网上提过的基础API开始进行实现. 阅读全文
posted @ 2012-02-13 05:55 何解一直犯相同错误? 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一.CString与LPCWSTR 两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。 CString转换成LPCWSTR 方法一:CString strFileName; LPCWSTR lpcwStr = strFileName.AllocSysString(); 方法二:CString str=_T("TestStr"); USES_CONVERSION; LPCWSTR lpcwStr = A2CW((LP 阅读全文
posted @ 2012-02-13 05:47 何解一直犯相同错误? 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 如何理解LPCTSTR类型?L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。P表示这是一个指针C表示是一个常量T表示在Win32环境中, 有一个_T宏这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。同样, 阅读全文
posted @ 2012-02-13 03:14 何解一直犯相同错误? 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一.CString与LPCWSTR两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。CString转换成LPCWSTR方法一:CString strFileName;LPCWSTR lpcwStr = strFileName.AllocSysString();方法二:CString str=_T("TestStr"); USES_CONVERSION; LPCWSTR lpcwStr = A2CW((LPCSTR) 阅读全文
posted @ 2012-02-13 03:10 何解一直犯相同错误? 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2012-02-13 02:54 何解一直犯相同错误? 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 1>d:\users\yangtse\documents\visual studio 2008\projects\winmain\winmain\54.cpp(27) : error C2440: “=”: 无法从“const char [14]”转换为“LPCWSTR” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换 1>d:\users\yangtse\documents\visual studio 2008\projects\winmain\winmain\54.cpp(35) : error C2664: “Create 阅读全文
posted @ 2012-02-13 02:33 何解一直犯相同错误? 阅读(1039) 评论(1) 推荐(1) 编辑
摘要: 这里是几个主要非英文语系字符范围(google上找到的): 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。F900~FAFFh:中日韩兼容表意文字区,总计收容3 阅读全文
posted @ 2012-02-13 02:31 何解一直犯相同错误? 阅读(1427) 评论(0) 推荐(0) 编辑
摘要: 执行 MessageBox(NULL,Temp,"Application Error",MB_ICONSTOP); 时出现以下错误: error C2664: “MessageBoxW”: 不能将参数 2 从“char *”转换为“LPCWSTR” 其中定义: char* Temp=new char[200]; 请问怎么改啊?因为你的程序在UNICODE(宽字节)字符集下运行,如果调用了 MessageBox ,实际上调用的是 MessageBoxW 函数; 如果你的程序在 ANSI 字符集运行,调用 MessageBox ,就相当于调用 MessageBoxA; 其中 M 阅读全文
posted @ 2012-02-13 02:27 何解一直犯相同错误? 阅读(298) 评论(0) 推荐(0) 编辑