win7 系统下 ADO使用问题~!!!

YongApple 2010-07-07 05:47:31
我的程序,内部使用了ado连接操作access数据库,
在winxp系统下,使用没有问题。
但是在 win7系统下,
CAdoConnection::CAdoConnection()
{
// ::CoInitialize( NULL );
// ::CoInitializeEx( NULL, COINIT_MULTITHREADED );

//创建 Connection 对象---------------------------
m_pConnection.CreateInstance("ADODB.Connection");


会卡死在 m_pConnection.CreateInstance("ADODB.Connection");这句话处。

请问 怎么解决啊。
...全文
1223 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyilong19 2012-02-02
  • 打赏
  • 举报
回复
我也遇到 同样问题了 ,请求帮助啊
General121 2011-08-31
  • 打赏
  • 举报
回复
微软给的解决办法http://support.microsoft.com/kb/2517589,但我试了还是有问题。
hzulanyi 2011-05-04
  • 打赏
  • 举报
回复
我现在也遇到同样的问题,请问楼主问题解决了没?我的邮箱439006136@qq.com
nwao7890 2010-08-24
  • 打赏
  • 举报
回复
同问,楼主现在解决了吗
YongApple 2010-07-07
  • 打赏
  • 举报
回复
顶~!!!!!!!!!!
YongApple 2010-07-07
  • 打赏
  • 举报
回复
m_pConnection.CreateInstance(__uuidof(Connection));

卡在这个语句里面了。还是老样子,郁闷
YongApple 2010-07-07
  • 打赏
  • 举报
回复
好的,我试试看
zwfgdlc 2010-07-07
  • 打赏
  • 举报
回复
m_pConnection.CreateInstance("ADODB.Connection");
必这样试下

try{
m_pConnection.CreateInstance(__uuidof(Connection));
}
catch(_com_error& e)
{
MessageBox(e.Description(), e.ErrorMessage());
}
YongApple 2010-07-07
  • 打赏
  • 举报
回复
顶~!
YongApple 2010-07-07
  • 打赏
  • 举报
回复
如果没有 ::CoInitialize( NULL );

我的程序不可能在winxp下测试通过的。

很郁闷,不知道win7下为啥,会卡在 创建连接对象指针这句话上。
YongApple 2010-07-07
  • 打赏
  • 举报
回复
这个我知道的,谢谢,
我已经在 之前,有初始化com的调用了。
zwfgdlc 2010-07-07
  • 打赏
  • 举报
回复
// ::CoInitialize( NULL );
这句不能注释掉,要初始化COM,ADO才能正常使用。
YongApple 2010-07-07
  • 打赏
  • 举报
回复
直接卡在这句话里面,出不来了,具体就是卡在



// 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));


这里面的 ,hr = CoCreateInstance(rclsid, pOuter, dwClsContext, __uuidof(IUnknown), reinterpret_cast<void**>(&pIUnknown));
这个函数中了。
YongApple 2010-07-07
  • 打赏
  • 举报
回复
接着顶
YongApple 2010-07-07
  • 打赏
  • 举报
回复
自己顶一下吧,,估计也会有其他的兄弟遇到此类问题的。

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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