最近在使用VS2010处理MFC多线程时,按照如下方式编写:

AfxBeginThread(threadFunction,NULL);                     //线程创建函数

UINT threadFunction(LPVOID para)                           //线程处理函数

{

//处理数据代码

return 0;

}

虽然上面的代码编译正常,但是在运行时总是碰到Create Instance failed这个运行错误。

在此之前我也使用上面的写法创建多线程处理,一直都很正常,为什么现在反而又出错了?后经查找资料,找到了问题的根源:

我在创建的线程中使用了ADO方式操作数据库,而这种操作方式需要使用COM组件。每个线程在使用COM组件之前都必须声明它的套间类型,即在每个线程使用组件对象之前都要调用CoInitialize,并在退出之前调用CoUninitialize。如果在线程中没有调用,对象根本就没有创建出来,继续运行就会访问0指针,就会非法操作了。

现在只需将线程处理函数改为如下形式即可解决问题:

UINT threadFunction(LPVOID para)                           //线程处理函数

{

CoInitialize(null)

//处理数据代码

CoUninitialize();

return 0;

}

说明:如果你的线程中没有使用COM组件,无需调用CoInitialize和CoUninitialize,线程也能正确运行。

转载于:https://www.cnblogs.com/young525/p/5873829.html

MFC多线程失败:Create Instance failed相关推荐

  1. MFC多线程的创建,包括工作线程和用户界面线程

    MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的.每一个应用程序的执行都有一个主线程,这个主线程也是 ...

  2. MFC多线程各种线程用法 .

    一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为 IDC_SLEEP_SI ...

  3. VC++ MFC 多线程及线程同步(详细、全面总结!)

    更多详情:http://blog.csdn.net/whyacinth/ VC++ MFC 多线程及线程同步 关键词: MFC    多线程及线程同步                          ...

  4. Docker启动失败报错Failed to start Docker Application Container Engine解决方案

    在给一台腾讯云机器安装docker后发现无法启动,总是报错Failed to start Docker Application Container Engine,解决思路分享一下,以免各位童鞋踩坑. ...

  5. Operation CREATE USER failed for 'lin'@'host'

    执行下列语句创建用户失败 CREATE USER lin@'host' IDENTIFIED BY 'My12345@'; 提示Operation CREATE USER failed for 'li ...

  6. MFC多线程使用进度条

    MFC多线程使用进度条 为什么使用多线程 因为在创建进度条显示进度时,出现了进度条无法显示当前程序运行到的进度问题,通过多方查询信息,了解到应当使用线程去完成进度条的调用,才能起到效果.且使用多线程不 ...

  7. 解决pc游戏启动报错3005 Error 30005: Create File Failed With 32

    ----20220626 其实今天本来没有想好写什么的,直到刚刚!就刚刚,无聊想玩玩糖豆人,突然发现我的糖豆人登录不上去了,报错编号为# Error 30005: Create File Failed ...

  8. CWnd::AssertValid()函数执行出错---MFC多线程

    1. 问题 在修改单线程MFC程序为多线程时,遇到了CWnd::AssertValid()函数执行出错问题.主要表现是在执行下面代码中绿色语句时出错 点击(此处)折叠或打开 #ifdef _DEBUG ...

  9. MFC多线程同步互斥

    MFC多线程同步互斥[转载] http://blog.sina.com.cn/s/blog_62d15fb601017dhn.html https://www.cnblogs.com/zhanghu5 ...

最新文章

  1. 62. Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找-局部有序)
  2. 每个人都该懂点的版本管理技能
  3. WatchOS系统开发大全(6)-WKInterfaceLabel
  4. C与C++的内存机制的比较
  5. 技术分享连载(六十四)
  6. mysql 排序去重复_php mysql 过滤重复记录并排序
  7. 使用工具包自动生成向EBS系统注册表和字段的代码
  8. SpringCloud系列第09节之消息总线Bus
  9. MATLAB基础绘图操作
  10. 练习4.4 萨提亚冰山理论应用
  11. node.js版本问题
  12. java retry: 详解
  13. 商用计算机使用温度,电脑一般的使用温度为?
  14. 关于影视剪辑中的pr软件你了解多少?
  15. 基于51单片机的寻迹小车
  16. Python编程——多进程与多线程编程(附实例)
  17. Ray --内部运行机制、对象存储中对象的存储和容错
  18. android签名方法,Android : apk系统签名的多种方法
  19. 三大方面对比两种企业邮箱的功能,看完你就明白了
  20. 基于Html5 Canvas的T恤、箱包、礼品定制等设计组件

热门文章

  1. 深度学习算法 | LSTM算法原理简介及Tutorial
  2. fifo的valid信号啥时候为高_五角枫啥时候适合移栽?五角枫移栽最佳时间
  3. c++怎么输入带有空格的字符串_C 语言入门 11 fscanf() 函数对空格的处理
  4. python 可视化项目_python3项目之数据可视化
  5. Linux启动芯片的初始代码,Linux系统初始化流程(简述)
  6. JDK时区与电脑系统时区不一致,导致时间new date不对
  7. php期末作业经验,期末作业.php
  8. java swarm_科学网—Java_Swarm编程:遇到麻烦了...... - 高德华的博文
  9. 漫步VR——Unity语音聊天室开发小结
  10. android layout 层次感,FrameLayout的层次问题