2013-05-17 79 views
-2

我在windows.h中使用了一些像createFile,readFile這樣的文件功能,並且我正在windows 7下開發。我應該擔心我的程序的Windows XP用戶嗎?他們有不同版本的kernel32.dll,對吧?Windows文件API兼容性win 7 vs win XP

+0

這些函數已經存在了很長時間,並且在早期的Windows版本中工作得很好。 –

回答

2

你會發現MSDN是一個非常有用的資源。它不僅向您顯示函數需要什麼參數,返回的內容以及它的功能,還會告訴您哪些版本的操作系統支持該函數。例如,對於CreateFile頁面有下要求節中列出了以下信息:

最低支持的客戶端:Windows XP中[桌面應用程序僅]

最低支持的服務器:在Windows Server 2003 [桌面應用程序]

標頭

FileAPI.h (include Windows.h); 
WinBase.h on Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, 
      Windows Server 2003, and Windows XP (include Windows.h) 

圖書館

Kernel32.lib 

DLL

Kernel32.dll 

什麼這個信息告訴你的是,該功能CreateFile是適用於Windows XP和Windows的後續版本,你必須包含<windows.h>才能獲得該功能,而且fu通過kernel32.dll輸出。

+3

文檔說Windows XP是最早可用的唯一原因是該版本是(當前)最早由Microsoft正式支持的版本。 'CreateFile'函數可以追溯到至少從1993年開始的第一個Windows NT 3.1。 –

+0

@GregHewgill好的,謝謝你的理解。我應該在我的帖子中記下這一點。 –

0

如果您使用Visual Studio,請查看您的stdafx.h(預編譯頭文件)。它應該建議針對基本Windows版本設置哪些宏。就像這樣:

// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.