readdirectorychangesw 链接错误 undeclared identifier 解决方法

添加  #define   _WIN32_WINNT   0x0500,且在windows.h头文件定义之上。

即:

#define   _WIN32_WINNT   0x0500
#include

原理:

1.ReadDirectoryChangesW函数定义在winbase.h头文件中,,通常windows下编程一般都包含windows.h文件,而windows.h中包含了winbase.h,所以不用再包含winbase.h

2.在winbase.h中ReadDirectoryChangesW原型定义如下:

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

可以看出,这是一个条件编译语句,只有定义了_WIN32_WINNT 这段代码才会被编译器加入,因此需要定义

_WIN32_WINNT ,其值应大于等于0x0400(好像0x0400表示Windows2000,0x0500表示Windows XP),且需要

定义在包含windows.h(或winbase.h)的定义语句之前。

你可能感兴趣的:(readdirectorychangesw 链接错误 undeclared identifier 解决方法)