【问题标题】:CreateToolhelp32Snapshot could not be located in kernel32.dll error message [closed]CreateToolhelp32Snapshot 无法位于 kernel32.dll 错误消息中[关闭]
【发布时间】:2012-10-30 12:53:15
【问题描述】:

在 Windows NT 机器(版本 4.0 SP6)中启动我的应用程序时,我收到以下错误消息并且应用程序没有启动。但是,相同的应用程序在 Windows XP 上启动并且运行良好。

消息如下:

“无法在动态链接库 KERNEL32.dll 中定位程序入口点 CreateToolhelp32Snapshot”

任何想法/修复?请帮忙

谢谢,

纳扬

【问题讨论】:

  • NT 4?该平台上不存在该 API,它是在 XP 中引入的,因此该软件显然不兼容。

标签: windows winapi kernel32


【解决方案1】:

来自CreateToolhelp32Snapshot()的参考页面:

  • 支持的最小客户端 | Windows XP [仅限桌面应用]
  • 支持的最低服务器 | Windows Server 2003 [仅限桌面应用]

所以该功能在 NT 上不可用。一种可能的替代方法是将EnumProcesses()OpenProcess() 结合使用。请参阅示例Enumerating All Processes

【讨论】:

  • MSDN 文档具有误导性。它实际上是在 Windows 2000 中引入的。
  • @DavidHeffernan,误导是温和的!
  • 这是一个非常常见的陷阱。当 MS 更新他们的 API 文档时,他们会将 min OS 更新为文档更新时支持的最小值。所以你仍然可以找到一些宣称 Win2000 是最小操作系统的。例如CloseHandle。当然,曾几何时,该文档将 NT3 列为最低级别。保留一份 10 年前的 MSDN 文档订阅 DVD 的副本是值得的!
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 2011-02-20
  • 2019-01-15
  • 2013-12-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多