error C2065: 'CFileFind'

问题描述:win32的工程,使用CFileFind 类,引入了头文件#include 在#include "stdafx.h"前面,颠倒位置会报window.h重复引用。因为stdafx.h包含window.h以及其他soui的一些头文件。编译报错: C2065 “CFileFind”: 未声明的标识符,但是CFileFind 用f12可以跟踪到afx.h的类定义。

提供参考思路,链接:https://learn.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-1/compiler-error-c2065?view=msvc-140
【文章中以实例的形式讲解error C2065: 'CFileFind',出现的10种情况,并给出分析方法】

建议用FindFirstFile等函数,路径前带\\?\前缀,这样可以避免....之类畸形文件夹和长路径(超过260)的影响。

CFileFind一看就是MFC提供的类,打开你项目对MFC的支持试试

如截图,将Win32工程,改成在共享DLL中使用MFC

img

参考一下

错误 error C2065: 未声明的标识符 解决办法_xyz27823501的博客-CSDN博客_errorc2065未声明的标识符 用vs2010重新编译cascade_convert.exe文件时,弹出了了如题所示的问题,20多处错误,例如:    错误3 error C2065: “CvHaarClassifierCascade”: 未声明的标识符c:\users\administrator\desktop\重新生成convert_cascade\test1\test1.cpp28 1 test1 https://blog.csdn.net/xyz27823501/article/details/12756317?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166918110816782395351378%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166918110816782395351378&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-12756317-null-null.nonecase&utm_term=error%20C2065%3A%20CFileFind&spm=1018.2226.3001.4450

工程未添加mfc的支持,进行如下操作即可:
1、在工程中添加mfc动态支持:

img


2、修改stdafx.h,注释掉#include <windows.h>,添加#include <afx.h>即可编译成功

img

有帮助请采纳,谢谢!

把#include "stdafx.h"放在最前面也不行吗