读书人

dll中使用adocom初始化失败解决思路

发布时间: 2012-02-03 22:02:47 作者: rapoo

dll中使用ado,com初始化失败
vc6写了一个regular dll,dll中用到ado。结果调用dll时,显示com初始化失败。

dll中:
if( !CoInitialize( NULL ) ) {
AfxMessageBox( "初始化COM失败! " );
exit(1);
}


请问是什么问题?

[解决办法]
你没有初始化com库,当然涉及到的com调用都只能失败了。
[解决办法]
if( !CoInitialize( NULL ) ) {
AfxMessageBox( "初始化COM失败! " );
exit(1);
}

==>

if( FAILED(CoInitialize( NULL )) ) {
AfxMessageBox( "初始化COM失败! " );
exit(1);
}

===========================================================

hr = m_pConnection.CreateInstance( "ADODB.Connection " );
if(FAILED(hr))//失败
{
....
}


请使用FAILED.
[解决办法]
if(FAILED(::CoInitialize(NULL)))
return;


::CoUninitialize();
[解决办法]
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox( "初始化COM组件库错误 ");
}

读书人网 >VC/MFC

热点推荐