日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

readdirectorychangesw 链接错误 undeclared identifier 解决方法

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 readdirectorychangesw 链接错误 undeclared identifier 解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From: http://aaronaddis.blog.163.com/blog/static/1270893292010431101042517/

今天在編程中遇到了文件監控的東西,在使用readdirectorychangesw 函數是老是報未定義的錯誤,看了MSDN,包含了windows.h和Winbase.h 兩個頭文件,但是還是一樣的錯。查找之后發現了解決方案和原理:


添加??#define?? _WIN32_WINNT?? 0x0500,且在windows.h頭文件定義之上。
即:

#define?? _WIN32_WINNT?? 0x0500

#include <windows.h>


原理:
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 解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。