社区
C++ 语言
帖子详情
windows系统的waveoutopen有内存泄漏?
anstern
2011-04-27 06:35:56
直接调用windows系统的API函数,先运行waveoutopen,再运行waveoutclose,参数没有传错,但用任务管理器观看后,发现多产生30多个句柄,导致内存泄漏,请问大家怎么回事?
...全文
96
5
打赏
收藏
windows系统的waveoutopen有内存泄漏?
直接调用windows系统的API函数,先运行waveoutopen,再运行waveoutclose,参数没有传错,但用任务管理器观看后,发现多产生30多个句柄,导致内存泄漏,请问大家怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2011-04-28
打赏
举报
回复
你确定循环1万次就多了30万个句柄?别随便相信资源管理器。
anstern
2011-04-28
打赏
举报
回复
简单写了一段代码,还是有泄漏,请大家帮忙分析一下原因?
// TODO: Add your control notification handler code here
HWAVEOUT hWaveOut=NULL;
WAVEOUTCAPS pwoc;
int wChannels = 1;
int dwSamplesPerSec = 8000;
int dwBitsPerSample = 16;
WAVEFORMATEX lpFormat;
lpFormat.cbSize = sizeof(WAVEFORMATEX);
lpFormat.nChannels = wChannels;
lpFormat.wBitsPerSample = dwBitsPerSample;
lpFormat.nBlockAlign = wChannels*dwBitsPerSample/8;
lpFormat.nSamplesPerSec = dwSamplesPerSec;
lpFormat.wFormatTag = WAVE_FORMAT_PCM;
lpFormat.nAvgBytesPerSec = lpFormat.nBlockAlign*dwSamplesPerSec;
BOOL bRes;
bRes=waveOutOpen(&hWaveOut, WAVE_MAPPER, &lpFormat, NULL, NULL, CALLBACK_NULL);
bRes=waveOutReset((HWAVEOUT)hWaveOut);
bRes = waveOutClose((HWAVEOUT)hWaveOut);
anstern
2011-04-28
打赏
举报
回复
资源管理器都不能相信,相信谁呢?
「已注销」
2011-04-27
打赏
举报
回复
Remarks
If the device is still playing a waveform-audio file, the close operation fails.
Use the waveOutReset function to terminate playback before calling waveOutClose.
或者说,你确定关闭成功了吗?
「已注销」
2011-04-27
打赏
举报
回复
首先,多产生句柄不叫内存泄露,叫资源泄露。
你确定waveoutclose后,还是没有降下来么?
使用
windows
api 实现音频采集并同步回放
- 完成采集和回放后,必须正确地关闭设备、释放缓冲区和清除相关资源,避免
内存泄漏
。这通常涉及`
Wav
eInClose`、`
Wav
eOutClose`和`FreeHeap`等函数。 以上就是使用
Windows
API实现音频采集并同步回放的基本步骤和...
C语言录音机_C语言_录音_c语言录音_语音信号处理_
windows
录音机_
5. **内存管理和错误处理**:在整个过程中,要确保正确地分配和释放内存,防止
内存泄漏
。同时,需要处理可能出现的错误,例如设备未找到、内存不足或操作失败等。 在实际开发中,可能还需要考虑文件保存和读取、...
Windows
Mobile (PPC) 下的录音和播音程序,有源代码
在完成录音或播放后,务必执行这一步,以防止
内存泄漏
和资源占用。 回调函数(CALLBACK_THREAD)是一种处理
wav
eXXX事件的方式,它表示回调函数在一个单独的线程中运行。这对于非阻塞式的录音和播放非常重要,因为...
C#在WINCE
系统
上播放声音
确保在PDA的资源管理方面做得足够好,例如,释放设备、避免
内存泄漏
,以及考虑低电量或低内存场景下的优化。 6. **调试与测试**:在实际设备上进行调试和测试是非常必要的,因为模拟器可能无法完全模拟真实环境中的...
利用C++來實現錄音機功能
另外,确保在不再需要时正确地释放内存和关闭设备是非常重要的,避免
内存泄漏
和资源浪费。 总的来说,利用C++实现录音机功能涉及到
Windows
API的深度使用,包括窗口管理、音频输入输出以及用户交互。"RecordHWnd"是...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章