多线程使用ADO操作数据库时,CreateInstance对象回失败,原因主要:
每个线程在使用COM组件之前都必须声明它的 套间类型 ,即在每个线程使用组件对象之前都要调用CoInitialize,并在退出之前调用CoUninitialize。如果在线程中没有调用,对象根本就没有创建出来,继续运行就会访问0指针,就会非法操作了。
AfxBeginThread(aaa,this);
aaa()
{
CoInitialize(null)
....
CoUninitialize();
}
本文讲述了在多线程环境下使用ADO操作数据库时遇到的问题及解决办法。指出每个线程使用COM组件前必须通过调用CoInitialize进行初始化,并在使用完毕后调用CoUninitialize释放资源,否则会导致对象创建失败。
多线程使用ADO操作数据库时,CreateInstance对象回失败,原因主要:
每个线程在使用COM组件之前都必须声明它的 套间类型 ,即在每个线程使用组件对象之前都要调用CoInitialize,并在退出之前调用CoUninitialize。如果在线程中没有调用,对象根本就没有创建出来,继续运行就会访问0指针,就会非法操作了。
AfxBeginThread(aaa,this);
aaa()
{
CoInitialize(null)
....
CoUninitialize();
}
1541

被折叠的 条评论
为什么被折叠?