当前位置: 首页 > 编程笔记 >

在XP系统上出现无法定位程序输入点 K32GetProcessMemoryInfo的解决方案

安博文
2023-03-14
本文向大家介绍在XP系统上出现无法定位程序输入点 K32GetProcessMemoryInfo的解决方案,包括了在XP系统上出现无法定位程序输入点 K32GetProcessMemoryInfo的解决方案的使用技巧和注意事项,需要的朋友参考一下

VC2012升级补丁5.0之后,编译出来的程序发现在XP系统无法定位程序输入点 K32GetProcessMemoryInfo于动态链接库kernel32.dll之上。

之前程序一直在XP上安装正常,今天测试组的同事突然发现,新发布的版本不能在XP上使用,这个问题比较奇怪,因为以往的版本都是没有问题的。为什么会突然出现这个问题呢?一开始就去查找是否所有工程都使用V110_XP来编译,找完所有工程都没出错。最后才想到近来升级VC2012的Update5.0的补丁,再打包编译之后,才发现XP的电脑不能使用了。

经过查找分析,发现是如下问题:

这是由于GetProcessMemoryInfo在不同系统版本号不同导致的,官方说明如下:

Remarks
Starting with Windows 7 and Windows Server 2008 R2, Psapi.h establishes version numbers for the PSAPI functions. The PSAPI version number affects the name used to call the function and the library that a program must load.
If PSAPI_VERSION is 2 or greater, this function is defined as K32GetProcessMemoryInfo in Psapi.h and exported in Kernel32.lib and Kernel32.dll. If PSAPI_VERSION is 1, this function is defined as GetProcessMemoryInfo in Psapi.h and exported in Psapi.lib and Psapi.dll as a wrapper that calls K32GetProcessMemoryInfo.
Programs that must run on earlier versions of Windows as well as Windows 7 and later versions should always call this function as GetProcessMemoryInfo. To ensure correct resolution of symbols, add Psapi.lib to the TARGETLIBS macro and compile the program with -DPSAPI_VERSION=1. To use run-time dynamic linking, load Psapi.dll.

解决方案如下:

只需要在#include <psapi.h>引用前添加


#ifndef PSAPI_VERSION

#define PSAPI_VERSION 1

#endif

#include <psapi.h>

#pragma  comment(lib,"Psapi.lib")

看来微软已经不支持XP系统了,因此所有发布的新版本软件已经不再测试XP的兼容性了。看来明年,也需要转向不支持XP系统了,否则需要投入的测试成本和维护成本急剧上升中,需要全面转向WIN7和WIN10系统的支持。有此可见,生态系统就是这么重要的事情,可以左右大局。

 类似资料:
  • 本文向大家介绍VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法,包括了VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法的使用技巧和注意事项,需要的朋友参考一下 通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息。经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW6

  • 本文向大家介绍在IOS系统上滚动条滚动到指定的位置出现空白页面的解决方案,包括了在IOS系统上滚动条滚动到指定的位置出现空白页面的解决方案的使用技巧和注意事项,需要的朋友参考一下 原因: -webkit-overflow-scrolling:touch 解释: 由于使用-webkit-overflow-scrolling这个属性,苹果手机会使用硬件加速,从而促使页面滑动得更加流畅,然而也导致了页面

  • 本文向大家介绍python+selenium 定位到元素,无法点击的解决方法,包括了python+selenium 定位到元素,无法点击的解决方法的使用技巧和注意事项,需要的朋友参考一下 报错 需要点击的按钮页面显示不了,需要下拉滚动条,能看到按钮了才能点 1、尝试下拉一段滚动条,让按钮能看到 OK,能点到了 2、不是下拉加载的页面,用方法一有点傻,尝试让滚动条定位到指定元素位置 ok,滚动到元素

  • 本文向大家介绍64位系统中IIS7运行ASP时出现ADODB.Connection 800a0e7a错误的解决方法,包括了64位系统中IIS7运行ASP时出现ADODB.Connection 800a0e7a错误的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天将一个ASP网站拷贝到64位的Windows7中运行,IIS7安装都没有问题,可就是死活运行不了,总是出现ADODB.Connect

  • 本文向大家介绍IOS CoreLocation实现系统自带定位的方法,包括了IOS CoreLocation实现系统自带定位的方法的使用技巧和注意事项,需要的朋友参考一下 Core Location是iOS SDK中一个提供设备位置的框架。可以使用三种技术来获取位置:GPS、蜂窝或WiFi。在这些技术中,GPS最为精准,如果有GPS硬件,Core Location将优先使用它。如果设备没有GPS硬

  • 本文向大家介绍PhpStorm terminal无法输入命令的解决方法,包括了PhpStorm terminal无法输入命令的解决方法的使用技巧和注意事项,需要的朋友参考一下 在使用PhpStorm时,点击下面的terminal时,发现怎么输入都不显示,于是一查才发现是phpstorm与win10系统不兼容的问题,只要设置一下控制台(使用老版本就ok了) 步骤非常简单: win+r打开控制器,鼠标