2012-10-30 76 views
0

在Windows NT机器(Ver。4.0 SP6)中启动我的应用程序时,出现以下错误消息,应用程序无法启动。然而,同样的应用程序在Windows XP上启动并且工作正常。CreateToolhelp32Snapshot找不到kernel32.dll错误信息

贺电如下:

“程序输入点CreateToolHelp32Snapshot函数不能设在动态链接库KERNEL32.dll”

任何想法/解决?请帮助

感谢,

拿烟

+0

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

回答

2

从参考页CreateToolhelp32Snapshot()

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

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

+0

MSDN文档具有误导性。它实际上是在Windows 2000中引入的。 –

+0

@DavidHeffernan,误导性放在了一边! – hmjd

+0

这是一个非常常见的陷阱。当MS更新他们的API文档时,他们会将最小操作系统更新为文档更新时支持的最小值。所以你仍然可以找到一些宣称Win2000成为最小操作系统的人。例如'CloseHandle'。当然,曾经有文件将NT3列为最低级别。从10年前开始保留一份MSDN文档订阅DVD是值得的! –