c++,监视目录以了解Windows中的更改-在此范围内未声明_tsplitpath_s

标签 c++ winapi

我需要构建一个 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/

相关文章:

c - Win32 API 命令行参数解析

C++ Win32——COM 方法 : equivalent C declaration

c# - 未调用 WH_KEYBOARD_LL Hook

c++ - 在 C++0x 中虚拟方法不是 "delete"吗?

c++ - 验证 _snprintf 中的格式说明符 - C++

c++ - 使用 openMP 计算复 vector 的点积

c++ - Z3:如何在不使用硬编码索引的情况下从model()访问变量?

c++ - GetTimeZoneInformation 函数返回具有 "incorrect"值的结构

java - 如何在java中使用SetWindowsHookEx函数?

c++ - 从 Luabind 调用 C++ 成员函数导致 "No matching overload found"