Yes, ReadDirectoryChangesW
#if(_WIN32_WINNT >= 0x0400)
WINBASEAPI
BOOL
WINAPI
ReadDirectoryChangesW(
    __in     HANDLE hDirectory,
    __out_bcount_part(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
    __in     DWORD nBufferLength,
    __in     BOOL bWatchSubtree,
    __in     DWORD dwNotifyFilter,
    __out    LPDWORD lpBytesReturned,
    __inout  LPOVERLAPPED lpOverlapped,
    __in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
    );
#endif /* _WIN32_WINNT >= 0x0400 */

解决方案 »

  1.   

    没用的。w和A都试过了。
    会不会是。net2005把这个函数去掉或是换了其他的?
      

  2.   

    http://www.codeproject.com/file/directorychangewatcher.asp
      

  3.   

    只有ReadDirectoryChangesW, 没有ReadDirectoryChanges和ReadDirectoryChangesAlz如果不是拼写错误,就是VC出了问题了吧.
      

  4.   

    解决了
    加上“#define   _WIN32_WINNT   0x0500 ”  就可以了这条语句代表什么?
      

  5.   

    上面那句是一个宏定义, 指明当前的 NT 版本. 因为有的 API 是专门针对它而编写的 .
      

  6.   

    某些API并不是所有操作系统都支持,因而定义一个符号标记当前操作系统的版本。
    Windows Server 2003 _WIN32_WINNT>=0x0502
    WINVER>=0x0502
     
    Windows XP _WIN32_WINNT>=0x0501
    WINVER>=0x0501
     
    Windows 2000 _WIN32_WINNT>=0x0500
    WINVER>=0x0500
     
    Windows NT 4.0 _WIN32_WINNT>=0x0400
    WINVER>=0x0400
     
    Windows Me _WIN32_WINDOWS=0x0500
    WINVER>=0x0500
     
    Windows 98 _WIN32_WINDOWS>=0x0410
    WINVER>=0x0410
     
    Windows 95 _WIN32_WINDOWS>=0x0400
    WINVER>=0x0400
     
    ReadDirectoryChangesW要求_WIN32_WINNT >=0x0400 , 一般<windows.h>中至少已定义了_WIN32_WINNT 0x0400, 应该直接就可以使用.