1、问题描述

原开发环境:Win7 64位旗舰版,VS2010,ThinkPad T460

出现问题:自己开发的MFC程序在WinXP环境下无法正常运行,弹框“无法定位程序输入点InitializeConditionVariable于动态链接库kernel32.dll”

重新搭建开发环境:WinXP SP3 专业版,VS2010,GIGABYTE某motherboard(原谅办公室没别的空闲主机了)

问题依旧存在:重新编译通过,但运行时还是弹框“无法定位程序输入点InitializeConditionVariable于动态链接库kernel32.dll”,我在程序入口下的断点,都没有执行到。

2、原因

(1)如果并不是自己开发的程序:一般就是不兼容,但也有可能是别的原因。

(2)如果想让自己开发的程序在WinXP系统上兼容:不要低估微软,更不要高估寄几。一般没有别的乱七八糟的原因,只是因为WinXP系统的kernel32.dll中并没有InitializeConditionVariable。之前在Win7上开发的时候,你或者MFC程序调用了kernel32.dll中的InitializeConditionVariable,所以在XP上根本运行不了。一般是多线程处理不当造成的。

3、解决方法

(1)如果并不是自己开发的程序:想要尝试解决的话,请参照百度出来的方法,但是一定要提前准备好WinPE系统(U盘启动盘),并且对原kernel32.dll文件进行备份!因为替换kernel32.dll文件极有可能使你的操作系统开不开机。

(2)如果想让自己开发的程序在WinXP系统上兼容:

  • 最好在WinXP上搭建开发环境,再调试代码。
  • 最好直接Google,中文资料质量一般。不要问我怎么知道的o(≧口≦)o
  • 虽然只有两个答案,但都是精华。 参考链接:http://stackoverflow.com/questions/2847960/procedure-entry-point-initializeconditionvariable-could-not-be-located-in-kernel
  • 高票回答中的代码可能并不能解决问题,第二个答案中,答主贴了自己的一篇博客 希望对你萌有所启发,反正是启发到我了(∩_∩)
  • 对于我的程序,我定位到出问题的地方是托盘,托盘涉及到的东西比较底层。现在我把托盘功能注释后可以再WinXP上运行了,接下来看看能否对托盘进行兼容处理,使之在XP上也能运行。

4、后续

WinXP是支持托盘图标的,之所以出错,是因为NOTIFYICONDATA结构也是不断更新升级的。原实现托盘的代码如下:

1 //设置托盘图标
2 m_notify.cbSize=sizeof NOTIFYICONDATA;
3 m_notify.hWnd=this->m_hWnd;
4 m_notify.uID=IDR_MAINFRAME;
5 m_notify.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
6 strcpy(m_notify.szTip,"XML解析程序");
7 m_notify.uCallbackMessage=WM_USER_NOTIFYICON;
8 m_notify.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; //生成托盘
9 Shell_NotifyIcon(NIM_ADD,&m_notify);

其中第二行 cbSize的赋值在WinXP环境下应改为:

m_notify.cbSize=sizeof NOTIFYICONDATA_V3_SIZE;

具体原因,参考:http://blog.csdn.net/kvs112219/article/details/6069936

以上。

转载于:https://www.cnblogs.com/JJJanepp/p/6346662.html

VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库相关推荐

  1. postman安装报错 无法定位_VS2010 + winxp 无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上 错误...

    winxp系统,使用VS2010, 在使用boost中的thread中的sleep的时候出现 "无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上&quo ...

  2. 内存不能为read和无法定位程序输入点 +@于动态链接库上

    内存不能为read和无法定位程序输入点 +@于动态链接库上 2011年06月13日 查看文章 写新文章 内存不能为read和无法定位程序输入点 +@于动态链接库上 2011-06-13 05:41 最 ...

  3. 【问题解决】无法定位程序输入点~于动态链接库上(The procedure entry point ~ could not be located)

    最近开始回过头来做一些视觉方面的工作.重新着手使用自己笔记本上配的工作环境. 工作环境:win7 32bit + vs2010 + opencv244 关于opencv的编译和配置,当时主要参考的是如 ...

  4. dll文件:关于MFC程序不能定位输入点

    问题:无法定位程序输入点到动态链接库上...... 过程:找完整个工程文件夹: APS为资源文件: resource.h为定义文件: 完全复制 除主文件以外的所有文件,程序可用: 在主程序框Cpp文件 ...

  5. linux 无法定位程序,三步搞定无法定位程序输入点 于动态链接库上

    三步搞定无法定位程序输入点 于动态链接库上 发布时间:2018-09-17 09:24 来源:互联网 当前栏目:电脑教程 上网的时候突然咚的一声弹出一个错误提示框,上边写着 iexplore.exe ...

  6. 无法定位程序输入点于动态链接库

    最近在项目研发调用动态链接库.dll文件时发现一个问题"无法定位程序输入点于动态链接库" 网上百度未果,经调试发现调用新动态链接库.dll文件未将DEBUG文件夹下旧动态链接库.d ...

  7. python.exe - 无法找到入口,无法定位程序输入点于动态链接库D:\Anaconda\lib\site-packages\torch_sparse\_version_cpu.pyd上。

    问题描述 导入 torch_geometric 这个库突然出现如下问题:python.exe - 无法找到入口,无法定位程序输入点于动态链接库D:\Anaconda\lib\site-packages ...

  8. 无法定位程序输入点的一种可能

    无法定位程序输入点的问题 1. 问题描述 2. 一般解决方案 3. 可能的隐秘错误 说明: 关键词: 无法找到入口 anaconda qt vtk 1. 问题描述 出现该问题的原因一般是 找不到动态库 ...

  9. vs2019报错:无法定位程序输入点于动态链接库的XXX.dll文件的解决方法

    项目场景 vs2019报错:无法定位程序输入点于动态链接库XXX.dll文件上 我的上述问题是在VS 2019 中 用c++处理点云时遇到的. 解决方案: 在网上查阅了相关的解决方法,总结如下: 1. ...

最新文章

  1. jQuery选择器回顾,IE8还需要你发光发热
  2. mysql安装笔记02
  3. python self 序列_python中序列化对象
  4. java 流程控制篇 2021/02/26持续更新中
  5. HTML字体小于12谷歌不兼容,Chrome谷歌浏览器下不支持css字体小于12px的解决办法...
  6. 新网 云服务器,云服务器的使用教程
  7. 极客大学架构师训练营 微服务网关 领域驱动设计 DDD OAuth 2.0 中台架构 第20课 听课总结
  8. 使用OpenCV进行图片模糊处理(归一化滤波器)
  9. 数据库系统概论第五版(第 1 章 绪论)习题答案
  10. macbook重装系统 选择方案_Mac如何重装系统?mac重装系统教程
  11. Mongodb释放内存
  12. XCode6如何创建Category
  13. js 中~~是什么意思?
  14. 什么是 P = NP 问题?
  15. Python编写无界面版打字练习程序
  16. 4、关于step的设置
  17. Kvaser Memorator Pro 2xHS v2
  18. python计算歌手得分
  19. zlib解压 被压缩的PDF(关键字FlateDecode)
  20. 软件工程之七——软件维护

热门文章

  1. Servlet学习笔记心得(二)
  2. golang+数据库定时任务
  3. 高 star 开源项目来实验楼啦,深度学习强推教材
  4. 车用计算机内部结构图,ecu的基本组成结构 ECU的工作过程
  5. 加减法叫做什么运算_小学四则运算基础知识,赶快给孩子存下吧!
  6. 安装软件要求输入服务器配置信息,信息技术考试软件配置安装与操作规范(管理服务端与客户端)(30页)-原创力文档...
  7. MySQL安全等于的介绍
  8. RabbitMQ消息手动应答生产者
  9. kubernetes-Pod定义
  10. 高仿真的类-ApplicationContextAware