2008-12-02 47 views
6

NT功能,所以我没有做很多的Win32调用,但最近我不得不使用GetFileTime()SetFileTime()功能。现在虽然Win98和下面没有在我的节目的人正式支持做反正用它那里,我尽量保持它可用作可能。我只是想知道会发生什么,因为这些职能不预NT系统的存在,他们会接受某种例如一个错误消息,因为在这种情况下,我会在操作系统中添加检查?由于调用预先-NT系统

回答

8

如果直接调用的函数,那么你的程序将无法在Win98加载。

你可以做的是使用LoadLibrary()/GetProcAddress()得到一个指向GetFileTime()/SetFileTime()。在Win98上这将失败,给你一个空指针,你可以测试和忽略。在2000年以后,你会得到一个你可以使用的指针。

这是一个痛苦,但它是我所知道的唯一的解决办法。

这里是得到UpdateLayeredWindow功能,如果它存在的一个例子:

typedef BOOL (WINAPI* UpdateLayeredWinFunc) (HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD); 

UpdateLayeredWinFunc updateLayeredWindow = 0; 
HMODULE user32Mod = GetModuleHandle (_T("user32.dll")); 
updateLayeredWindow = (UpdateLayeredWinFunc) GetProcAddress (user32Mod, "UpdateLayeredWindow"); 
0

你可以称之为FindFirstFile()而不是GetFileTime()。不过,我不知道SetFileTime()的替代方案。

+0

从我已经做了研究似乎没有一个,谢谢您的好意! – SteveL 2008-12-09 16:18:24