C++ 如何调试FindFirstChangeNotification获得的文件更改通知?

C++ 如何调试FindFirstChangeNotification获得的文件更改通知?,c++,debugging,winapi,notifications,C++,Debugging,Winapi,Notifications,所以,问题是:我收到了一些我不想收到的通知。但我不知道我是为了什么文件/目录得到它们的。有没有办法知道发出通知的原因 如果您考虑ReadDirectoryChangesW,请包含一个有意义的代码示例。~pseudocode HANDLE handles[MAX_HANDLES]; std::string dir_array[MAX_HANDLES]; for i from 0 to MAX_HANDLES: h[i] = FindFirstChangeNotification(dir_a

所以,问题是:我收到了一些我不想收到的通知。但我不知道我是为了什么文件/目录得到它们的。有没有办法知道发出通知的原因

如果您考虑ReadDirectoryChangesW,请包含一个有意义的代码示例。

~pseudocode

HANDLE handles[MAX_HANDLES];
std::string dir_array[MAX_HANDLES];

for i from 0 to MAX_HANDLES:
   h[i] = FindFirstChangeNotification(dir_array[i]...);

nCount = MAX_HANDLES;
ret = WaitForMultipleObjects(handles, nCount ...);

// check if ret returns something between WAIT_OBJECT_0 and WAIT_OBJECT_0+nCount-1
if "so":
  ret -= WAIT_OBJECT_0;
  cout << "Directory " << dir_array[ret] << " changed" << endl;
句柄句柄[最大句柄];
std::string dir_数组[最大句柄];
对于从0到最大句柄的i:
h[i]=FindFirstChangeNotification(dir_数组[i]…);
nCount=最大句柄数;
ret=WaitForMultipleObjects(句柄、nCount…);
//检查ret是否在WAIT_OBJECT_0和WAIT_OBJECT_0+nCount-1之间返回某些内容
如果“是”:
ret-=等待对象0;

参见专业Win32 api新闻组news://comp.os.ms-windows.programmer.win32
对于著名的MS示例(C代码)(自90年代以来…)

如果您希望Windows告诉您更改了哪些特定文件或子目录,则需要使用。如果使用完成例程,异步模式相当简单


另一方面,通过使用稍微复杂一点的方法,您可能会获得更好的性能。我建议下载Wes Jones优秀的源代码作为起点。他的代码可以帮助您避免一些问题,特别是在解析
文件\u NOTIFY\u信息
记录时。

使用ReadDirectoryChangesW有什么困难?