C++ ShellAPI.h的直接原因问题

C++ ShellAPI.h的直接原因问题,c++,windows,C++,Windows,我有一个功能: SHFileOperationFunc(string item1, string item2, int operation, CuTest *tc) 它用于对目录进行操作(移动、删除或复制)。它很好用。但我现在正在尝试使用dirent.h的东西。当我包含这个文件时,它会给我在SHFileOperationFunc中使用的ShellAPI.h中的内容带来巨大的问题。我得到了脏的 包含该文件后,会出现如下错误: error C2065: 'FO_DELETE' : undeclar

我有一个功能:

SHFileOperationFunc(string item1, string item2, int operation, CuTest *tc)
它用于对目录进行操作(移动、删除或复制)。它很好用。但我现在正在尝试使用dirent.h的东西。当我包含这个文件时,它会给我在SHFileOperationFunc中使用的ShellAPI.h中的内容带来巨大的问题。我得到了脏的

包含该文件后,会出现如下错误:

error C2065: 'FO_DELETE' : undeclared identifier
error C2065: 'FO_COPY' : undeclared identifier
error C2065: 'FO_DELETE' : undeclared identifier
error C2065: 'FO_DELETE' : undeclared identifier

这些在ShellAPI.h中定义。当我在VS中将鼠标悬停在它们上方时,它会显示它们所拥有的价值,因此它会看到它们。有人知道为什么包含此文件会产生这种效果吗?

在Windows计算机上使用dirent.h是不可取的,它是Unix头文件。你下载的文件把你剩下的内容都搞糟了。将if置于
#include
之后,或者编辑文件并删除#define for WIN32_LEAN#和#MEAN。把它放在头球是,嗯,卑鄙的。它会导致在Windows标题中跳过大量声明。

fair enuf。我会想办法做我想做的事。Cheers“悬停”位是因为IntelliSense对所有文件使用单一符号数据库。如果符号在您的一个文件中定义,IntelliSense将在所有文件中显示该值。