永发信息网

本人诚心找位大哥教我VC++。。给出Q号,我加

答案:2  悬赏:50  手机版
解决时间 2021-05-02 02:51
不会的,不想收我为徒的别说
最佳答案
最好是查看 MSDN  里面的资料最全,还有说明,等等.
这里帮你帮一些常用的函数吧

下载网站:
http://61.129.76.84/dload1.html?cid=9D2C45F72602076D010A4F02EB74DA29572BCB11 2006的

CD1 : http://61.129.76.84/dload1.html?cid=52404B658BA9C536ED236B90DEF72A300B64D28F
CD2: http://61.129.76.84/dload1.html?cid=DF3BAE4F49DF3DA331BBA545AD0DE64F2FF12B4B

只有这个是不带NET的 Msdn 2003中文版:
http://www.rescn.net/Software/catalog13/431.html

下边是带NET的

Visual Studio.Net 2003简体中文企业版(带MSDN):
http://www.rescn.net/Software/Catalog13/149.html
http://msdn.microsoft.com/newsgroups/default.aspx hread
全部回答
声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。   一.播放声音文件的简单方法   在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。   二.将声音文件加入到程序中    在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放。   要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_WAVE1。在播放时只需要调用下面的语句:   PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);   其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄,   SND_RESOURCE是必须的标志。   作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下:   1.获得包含资源的模块句柄:   HMODULE hmod=AfxGetResourceHandle();   2.检索资源块信息:   HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE"));   3. 装载资源数据并加锁:   HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);   LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);   4.播放声音文件:   sndPlaySound(lpMemSound,SND_MEMORY));   5.释放资源句柄:   FreeResource(hGlobalMem);   三.播放声音文件的高级方法    在VC++中提供了一组对音频设备及多媒体文件直接进行操作的函数。利用这些函数可以灵活地对声音文件进行各种处理。   首先介绍几个要用到的数据结构。WAVEFORMATEX结构定义了WAVE音频数据文件的格式。WAVEHDR结构定义了波形音频缓冲区。读出的数据首先要填充此缓冲区才能送音频设备播放。WAVEOUTCAPS结构描述了音频设备的性能。MMCKINFO结构包含了RIFF文件中一个块的信息。详细的说明请参考VC++中的帮助。   下面给出程序流程简图及程序源代码清单,在VC++环境下可直接使用:   源程序清单如下:   LPSTR szFileName;//声音文件名   MMCKINFO mmckinfoParent;   MMCKINFO mmckinfoSubChunk;   DWORD dwFmtSize;   HMMIO m_hmmio;//音频文件句柄   DWORD m_WaveLong;   HPSTR lpData;//音频数据   HANDLE m_hData;   HANDLE m_hFormat;   WAVEFORMATEX * lpFormat;   DWORD m_dwDataOffset;   DWORD m_dwDataSize;   WAVEHDR pWaveOutHdr;   WAVEOUTCAPS pwoc;   HWAVEOUT hWaveOut;   //打开波形文件   if(!(m_hmmio=mmioOpen(szFileName,NULL,MMIO_READ|MMIO_ALLOCBUF)))   {   //File open Error   Error("Failed to open the file.");//错误处理函数   return false;   }   //检查打开文件是否是声音文件   mmckinfoParent.fccType =mmioFOURCC(’W’,’A’,’V’,’E’);   if(mmioDescend(m_hmmio,(LPMMCKINFO)&mmckinfoParent,NULL,MMIO_FINDRIFF))   {   //NOT WAVE FILE AND QUIT   }   //寻找 ’fmt’ 块   mmckinfoSubChunk.ckid =mmioFOURCC(’f’,’m’,’t’,’ ’);   if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))   {   //Can’t find ’fmt’ chunk   }   //获得 ’fmt ’块的大小,申请内存   dwFmtSize=mmckinfoSubChunk.cksize ;   m_hFormat=LocalAlloc(LMEM_MOVEABLE,LOWORd(dwFmtSize));   if(!m_hFormat)   {   //failed alloc memory   }   lpFormat=(WAVEFORMATEX*)LocalLock(m_hFormat);   if(!lpFormat)   {   //failed to lock the memory   }   if((unsigned long)mmioRead(m_hmmio,(HPSTR)lpFormat,dwFmtSize)!=dwFmtSize)   {   //failed to read format chunk   }   //离开 fmt 块   mmioAscend(m_hmmio,&mmckinfoSubChunk,0);   //寻找 ’data’ 块   mmckinfoSubChunk.ckid=mmioFOURCC(’d’,’a’,’t’,’a’);   if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))   {   //Can’t find ’data’ chunk   }   //获得 ’data’块的大小   m_dwDataSize=mmckinfoSubChunk.cksize ;   m_dwDataOffset =mmckinfoSubChunk.dwDataOffset ;   if(m_dwDataSize==0L)   {   //no data in the ’data’ chunk   }   //为音频数据分配内存   lpData=new char[m_dwDataSize];   if(!lpData)   {   //faile   }   if(mmioSeek(m_hmmio,SoundOffset,SEEK_SET)<0)   {   //Failed to read the data chunk   }   m_WaveLong=mmioRead(m_hmmio,lpData,SoundLong);   if(m_WaveLong<0)   {   //Failed to read the data chunk   }   //检查音频设备,返回音频输出设备的性能   if(waveOutGetDeVCaps(WAVE_MAPPER,&pwoc,sizeof(WAVEOUTCAPS))!=0)   {   //Unable to allocate or lock memory   }   //检查音频输出设备是否能播放指定的音频文件   if(waveOutOpen(&hWaveOut,DevsNum,lpFormat,NULL,NULL,CALLBACK_NULL)!=0)   {   //Failed to OPEN the wave out devices   }   //准备待播放的数据   pWaveOutHdr.lpData =(HPSTR)lpData;   pWaveOutHdr.dwBufferLength =m_WaveLong;   pWaveOutHdr.dwFlags =0;   if(waveOutPrepareHeader(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)   {   //Failed to prepare the wave data buffer   }   //播放音频数据文件   if(waveOutWrite(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)   {   //Failed to write the wave data buffer   }   //关闭音频输出设备,释放内存   waveOutReset(hWaveOut);   waveOutClose(hWaveOut);   LocalUnlock(m_hFormat);   LocalFree(m_hFormat);   delete [] lpData;   说明:1)以上使用的音频设备和声音文件操作函数的声明包含在mmsystem.h头文件中,因此在程序中必须用#include "mmsystem.h"语句加入头文件。同时在编译时要加入动态连接导入库winmm.lib,具体实现方法是从Developer Studio的Project菜单中选择Settings,然后在Link选项卡上的Object/Library Modules控制中加入winmm.lib。2)在pWaveOutHdr.lpData中指定不同的数据,可以播放音频数据文件中任意指定位置的声音。3) 以上程序均在VC++6.0中调试通过,在文中省略了对错误及异常情况的处理,在实际应用中必须加入。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
异地恋好吗?
手术后应该吃点什么比较好的快,注意什么?
洮南市洪波机械修配厂我想知道这个在什么地方
Q宠大乐斗进我帮,详情详细描述
牵你的手是莪刻意, 只想听听内心振动,
C语言编程问题(用函数实现):
带江带林的诗句,形容教育的诗句
阿康餐饮店庄先湾总店怎么去啊,有知道地址的
前几天第一动画乐园演了一个叫《手》的魔术,
同性恋可不可以结婚
鸟巢为你什么东西高,南北底?
电子商务专业是学什么,专业“国际商务”是什
09年兰州新兵何时入伍
DOTA中各个英雄要出什么装备?
怎样使淘宝上未付款的彩票订单撤掉?
推荐资讯
怀孕五个月还可以流产吗
怎样提问回答?
回品茶业地址在哪,我要去那里办事
2009年11月上旬活猪多少钱一斤
除了QQ音乐和百度还有什么地方能下载歌曲方便
爱家照明怎么去啊,有知道地址的么
初中生班级励志口号,初中生跑操口号,大家帮
帝王宫5D动感影院在哪里啊,我有事要去这个地
DNF战法和阿修PK谁更厉害
确尔福在什么地方啊,我要过去处理事情
如何提高新浪微博中奖率
手动剃须刀怎么安,怎样用手动剃须刀刮胡须
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?