【发布时间】:2015-05-26 08:20:57
【问题描述】:
我在 VS2010 中有一个 C++ 项目,并在 VS2013 中升级它。我正在使用win7操作系统,它工作正常。输出是一个 exe 文件,我尝试在 Vista OS 中运行此可执行文件,但它崩溃并显示错误消息“无法在动态链接库 KERNEL32.dll 中找到过程入口点 K32EnumProcessModules” 我该如何解决这个问题?
【问题讨论】:
标签: c++ operating-system
我在 VS2010 中有一个 C++ 项目,并在 VS2013 中升级它。我正在使用win7操作系统,它工作正常。输出是一个 exe 文件,我尝试在 Vista OS 中运行此可执行文件,但它崩溃并显示错误消息“无法在动态链接库 KERNEL32.dll 中找到过程入口点 K32EnumProcessModules” 我该如何解决这个问题?
【问题讨论】:
标签: c++ operating-system
请参阅EnumProcessModules 的文档,特别是这部分:
必须在早期版本的 Windows 以及 Windows 7 和更高版本上运行的程序应始终将此函数称为 EnumProcessModules。为确保正确解析符号,请将 Psapi.lib 添加到 TARGETLIBS 宏并使用 -DPSAPI_VERSION=1 编译程序。要使用运行时动态链接,请加载 Psapi.dll。
这基本上意味着:
在您的代码中使用EnumProcessModules
链接到Psapi.lib
将PSAPI_VERSION=1 设置为预处理器定义
【讨论】: