2012-10-30 72 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是值得的! –