DirectSound和ADO数据库冲突问题

syy64 2009-09-18 02:30:23
问题如下:编程环境vc++6.0;我想用DirectSound实现一个三维立体声音同时还可进行数据库操作,但难如愿。
如果程序中不加DirectSound,单用ADO实现操作Access数据库是没有问题的,同样,如果在程序中单操作DirectSound,而不加数据库功能,声音实现也没有问题,但就两者同时加时有问题,加在后者就会出错,而前者没有问题,数据库错误如下:

try
{
hr = ((CCity3DApp*)AfxGetApp())->m_pConnection.CreateInstance("ADODB.Connection");
if(!SUCCEEDED(hr))
{
return;
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
CString SQL;
SQL.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%saaa.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password=6666",pView->pDoc->ProgrameDirectory);
try
{
hr = ((CCity3DApp*)AfxGetApp())->m_pConnection->Open(LPCTSTR(SQL),"","",adModeUnknown);
if(!SUCCEEDED(hr))
{
return;
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description()); //这儿会出错“致命的故障”是open函数出错
}



而声音的错误为:

hr = DirectSoundCreate( NULL, &g_pDS, NULL);
if(hr==DSERR_ALLOCATED)
{
MessageBox(NULL, "The request failed because resources, such as a priority level, were already in use by another caller. ", "¾¯¸æ£¡", MB_OK);
m_bHasSound = false;
return hr;
}
错误会进入if里


我的问题,上面的情况是怎样造成的?
如何解决?

...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nodiebirdcomeback 2009-09-22
  • 打赏
  • 举报
回复
这个if(hr==DSERR_ALLOCATED)
改成if(SUCCEEDED(hr))吧

ADO跟DirectSound不会存在冲突的。
有些控制变量你还是分开定义的好。
syy64 2009-09-22
  • 打赏
  • 举报
回复
有没有人做过在同一个应用程序里同时打开ADO access数据库和directsound的程序的例子?
wangk 2009-09-21
  • 打赏
  • 举报
回复
是不是由于使用独占模式打开声音设备的原因?
wshcdr 2009-09-21
  • 打赏
  • 举报
回复
没看明白
oyljerry 2009-09-18
  • 打赏
  • 举报
回复
GetLastError等是什么
是不是两者的COM线程库等冲突...
LL19850712 2009-09-18
  • 打赏
  • 举报
回复
占个沙发
sjdev 2009-09-18
  • 打赏
  • 举报
回复
错误进入if里,我觉得很奇怪。
syy64 2009-09-18
  • 打赏
  • 举报
回复
to fandh:多线程试过,也不行。
ziplj 2009-09-18
  • 打赏
  • 举报
回复
我是四个裤衩 你是四个星星 我只能看了...

为啥4个星星的会员 发的代码还是不着色呢???
fandh 2009-09-18
  • 打赏
  • 举报
回复
用多线程试试!
ziplj 2009-09-18
  • 打赏
  • 举报
回复
占个沙发

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧