gpt4 book ai didi

c++ - 在 NT 之前的系统上调用 NT 函数

转载 作者:可可西里 更新时间:2023-11-01 13:23:28 24 4
gpt4 key购买 nike

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

最佳答案

如果您直接调用这些函数,那么您的程序将无法在 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");

关于c++ - 在 NT 之前的系统上调用 NT 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/334674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com