找不到标识符 FindFirstFile

Posted

技术标签:

【中文标题】找不到标识符 FindFirstFile【英文标题】:Identifier not found FindFirstFile 【发布时间】:2015-08-27 03:24:52 【问题描述】:

我正在尝试使用 Windows API 中的 FindFirstFile 函数,我以前使用过它,但现在找不到了。它只是告诉我找不到标识符。我有 FindFirstFileExW、FindFirstFileExA 和 FindFirstFileEx 的其他变体,但我没有 FindFirstFile。我什至可以包含它应该在 FileAPI.h 中的特定标头。我在here 上读到了类似的问题,我应该在 windows.h 之前包含 stdafx.h 但我什至找不到 stdafx.h。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx

如果你不能回答这个问题,可以描述一下如何使用 FindFirstFileEx 来做与 FindFirstFile 相同的事情,因为 FindFirstFileEx 在 msdn 上被描述为具有更多属性的 FindFirstFile。

【问题讨论】:

您使用哪个编译器?什么版本?例如是 Visual Studio 2013 吗? @BarmakShemirani vs2015 (v140) 这毫无意义。 FindFirstFileFindFirstFileEx 在同一个头文件中。 include "windows.h" 应该足够了。你可能需要也可能不需要"stdafx.h" 如果 VS2015 没有抱怨它,那么你就不需要它。也许项目设置搞砸了。如果您没有大型项目,则创建一个新的 Win32 项目。以防万一是 IntelliSense 在抱怨,那么您可以忽略它。 请确定您使用的是哪个平台。你用winapiwin-universal-app 标记了这个,但它们是不同的。 FindFirstFilewinapi 函数,但不是 win-universal-app 函数。对于win-universal-app,您使用StorageFolder.GetItemsAsync @AndrewWilson - 只需在documentation 中查找它,它会告诉您如何使用FindFileEx,甚至包括一个提供与使用FindFile 相同的输出的示例。这些天来的孩子们不知道他们有多么容易得到它 - 从前我们不得不花几个小时在图书馆里阅读纸质书籍。现在,您的网络触手可及。 (Rob Schneider 声音)你可以做到的! 【参考方案1】:

FindFirstFile is documented as

支持的最低客户端:Windows XP [仅限桌面应用程序]

该 API 不适用于通用应用。通用等价物是StorageFolder.GetItemsAsync

【讨论】:

【参考方案2】:

根据APIs present on all Windows 10 devices,FindFirstFile 存在于版本10.0.14393.0 的Windows 10 中,而FindFirstFileEx 来自版本10.0.10240.0。 14393 is the Anniversary Update 和 10240 来自“阈值 1”,又名 RTM,又名“版本 1507”。因此,您可能拥有旧版本的 Windows API。我不确定为什么微软会包含一个功能而不包含另一个功能,而这两个功能以前都可用 - 也许只是一个疏忽?

因此,您最简单的解决方案是升级到 Windows 10 周年更新或更高版本

如果做不到这一点,这也是一个非常简单的代码更改。根据TFM:

以下调用:

FindFirstFileEx( lpFileName, 
                 FindExInfoStandard, 
                 lpFindData, 
                 FindExSearchNameMatch, 
                 NULL, 
                 0 );

相当于下面的调用:

FindFirstFile( lpFileName, lpFindData );

【讨论】:

以上是关于找不到标识符 FindFirstFile的主要内容,如果未能解决你的问题,请参考以下文章

error C3861: “maxmin”: 找不到标识符

为啥说找不到标识符!???

MFC “DockPane”: 找不到标识符 求解(CDockablePane的)

找不到标识符 FindFirstFile

将 WTL 更新到 WTL 10:'AtlCopyBitmap':找不到标识符

找不到标识符未声明的标识符