当前位置:  开发笔记 > 编程语言 > 正文

在NT之前的系统上调用NT功能

如何解决《在NT之前的系统上调用NT功能》经验,为你挑选了1个好方法。

所以我不做很多Win32调用,但最近我不得不使用GetFileTime()SetFileTime()函数.虽然我的程序中没有正式支持Win98及以下版本,但无论如何都会在那里使用它,我尽量保持它的可用性.我只是想知道会发生什么,因为这些功能在NT之前的系统中不存在,他们是否会收到某种类型的错误消息,例如因为在这种情况下我会添加操作系统检查?谢谢



1> Roland Rabie..:

如果直接调用函数,则程序将无法在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");

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有