首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NT之前的系统上调用NT函数

在NT之前的系统上调用NT函数
EN

Stack Overflow用户
提问于 2008-12-02 16:55:04
回答 3查看 395关注 0票数 6

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-02 16:59:39

如果您直接调用这些函数,那么您的程序将不会在Win98上加载。

您可以做的是使用LoadLibrary() / GetProcAddress()获取指向GetFileTime() / SetFileTime()的指针。在Win98上,这将失败,给你一个空指针,你可以测试并忽略它。在2000及更高版本中,您将获得一个指针,然后可以使用该指针。

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

下面是获取UpdateLayeredWindow函数(如果存在)的示例:

代码语言:javascript
复制
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");
票数 8
EN

Stack Overflow用户

发布于 2008-12-02 17:01:00

我相信你会得到一条类似于"The procedure entry point (name) not be located in (dll)“的错误信息,类似于下面所示的:

example http://img266.imageshack.us/img266/3762/error2pm1.png

票数 0
EN

Stack Overflow用户

发布于 2008-12-03 14:38:18

您可以调用FindFirstFile()而不是GetFileTime()。不过,我不知道SetFileTime()有什么替代方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/334674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档