Win7 SP1 下,MFC DLL项目里,调用ADO,创建ADODB::_ConnectionPtr连接实例时“卡死了”,分不多等待大神帮忙
环境工具:Windows 7 SP1 旗舰版、Visual Studio 2008 旗舰版
工程类型: MFC DLL项目
问题现状:调用Win7下系统盘下的msado15.dll,创建ADODB::_ConnectionPtr连接实例时“卡死了”
在 stdafx.h 中引用以下代码:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" rename("EOF","adoEOF")
using namespace ADODB;
在 MFC DLL 项目 CXXXApp::InitInstance() 方法中使用以下代码:
::CoInitialize(NULL);
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
AfxMessageBox(_T("创建Connection对象成功!"));
}
程序在创建 CreateInstance() 时候卡住,断点调试,卡住在 comip.h 文件中的以下 创建实例 位置:
// Loads an interface for the provided CLSID.
// Returns an HRESULT. Any previous interface is unconditionally released.
//
HRESULT CreateInstance(const CLSID& rclsid, IUnknown* pOuter = NULL, DWORD dwClsContext = CLSCTX_ALL) throw()
{
HRESULT hr;
_Release();
if (dwClsContext & (CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)) {
IUnknown* pIUnknown;
hr = CoCreateInstance(rclsid, pOuter, dwClsContext, __uuidof(IUnknown), reinterpret_cast<void**>(&pIUnknown));
// ....
}
}
}