我需要构建一个 c++
程序来监视目录中的文件更改。 Obtaining Directory Change Notifications很多和我类似的问题都推荐。我尝试了该代码,但第一个错误是
_tsplitpath_s was not declared in this scope
错误属于行
_tsplitpath_s(lpDir, lpDrive, 4, NULL, 0, lpFile, _MAX_FNAME, lpExt, _MAX_EXT);
我使用gcc version 5.1.0
并在CMD中通过以下命令运行代码
g++ file.cpp -o out
最佳答案
该代码对 stdlib.h 实现使用了 Microsoft 特定的扩展。 _splitpath_s and _wsplitpath_s仅在使用 Microsoft 编译器随附的 stdlib.h 实现时可用。它在 GCC 附带的 stdlib.h 实现中不可用。
要解决此问题,您可以使用标准 C++ filesystem library (可能不是 immediately available with your compiler ),或提供您自己的 splitpath
功能实现。
或者,根本不要调用 _tsplitpath_s
,并确保始终将目录和驱动器名称传递给示例代码中的 WatchDirectory
。
关于c++,监视目录以了解Windows中的更改-在此范围内未声明_tsplitpath_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53690591/