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 解决方法相关推荐
- error C2065: : undeclared identifier 解决方法
error C2065: 'IDD_VIDEONETDLG' : undeclared identifier 开发平台:VC++6.0 出现错误:error C2065: 'IDD_VIDEONETD ...
- MINIGUI常见错误集及解决方法
MINIGUI常见错误集及解决方法 个人前言:其中错误1到16是直接转载的一篇博客,在移植MiniGUI过程中碰到的问题远远不止这些,我只是拿这16个先开个头,以后会将我自己在移植MiniGUI的过程 ...
- Git错误non-fast-forward的解决方法
Git错误non-fast-forward的解决方法 秦时明月之君临天下 2019-05-02 10:58:39 34741 收藏 45 分类专栏: Git GitHub 文章标签: git 版权 目 ...
- 10038 mysql,关于MySql 10038错误的完美解决方法(三种)
第一种方法: 第一步: 先看报错窗口 2003 can't connect to MySQL server on '127.0.0.1'(10038). 第二步: 原因是:远程3306端口未对外开放操 ...
- Partition Magic错误信息与解决方法
Partition Magic错误信息与解决方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...
- win10更改计算机名无法连接网络,Win10宽带无法连接提示调制解调器报告了一个错误原因及解决方法...
Win10系统是目前最新的版本之一,目前笔记本的初装系统都是Win10,而我们如果没有路由器的情况下,我们则需要拨号才可以上网,在过程中遇到宽带无法连接的情况,系统提示"调制解调器(或其他连 ...
- SSL证书出现错误之后的解决方法
SSL证书是一种数字证书,可为网站提供身份验证并启用加密链接,这些证书向客户端传达,证书颁发是Web服务主机向证书颁发机构证明了域名的所有权. 此身份验证过程非常类似于在通过邮件发送信件之前将信件密封 ...
- mysql errcode 13_Linux下MySQL的写文件时权限错误(Errcode: 13)解决方法
在数据库中select * into outfile '/home/mysql/data.sql',mysql又提示错误:ERROR 1 (HY000): Can't create/write to ...
- “adb不是内部或外部命令,也不是可执行的应用程序”错误原因及解决方法
用SQLite时,可能会出现这样的错误. 原因可能是环境变量PATH没有配置或配置不正确.应该把adb.exe 所在目录加入到PATH环境变量.例如:C:\Program Files\android- ...
最新文章
- 5 亿微博数据疑泄露,Python 爬虫如何避免踩天坑?
- jsp/servlet与ajax实现简单局部日期时间更新
- 如何计算一年总共有多少周_美国计算机CS专业一年需要多少留学费用?
- Editplus PHP版
- Vim 上手指南【基础、中级】
- CSS自学笔记(16):CSS3 用户界面
- Confluence 6 PostgreSQL 创建数据库和数据库用户
- 使用jquery对特殊字符进行转义,防止js注入
- 实施 or 开发 ?
- python假设有一段英文、其中有单独的字母_峰终定律是诺贝尔奖获得者丹尼尔卡尼曼提出的。他发现,我们对一件事的整体评价,是全过程中所有元素体验的平均分。...
- python脚本自动运行失败_Linux中定时任务执行python脚本失败的解决方法
- 【三维路径规划】基于matlab无人机三维路径规划【含Matlab源码 1262期】
- oracle的备份恢复命令,Oracle RMAN的备份与恢复命令详解
- logback自定义日志配置
- 05|音频降噪概述(1)一传统降噪方法
- 关闭Typora拼写检查功能
- CCNA(七)思科路由器基本配置
- esp32➡遥控篇➡turtlesim➡mobot➡turtlebot3
- 两台电脑不在一个城市,如何使这两台电脑构成一个局域网?
- lumaQQ移植到Android之消息篇
热门文章
- 分享一个CSS3和jQuery实现的模糊显示效果 - 帮助你的访问用户更好的阅读内容
- 管道过滤模式 大数据_大数据管道配方
- 访问模型参数,初始化模型参数,共享模型参数方法
- leetcode1300. 转变数组后最接近目标值的数组和
- react 生命挂钩_如何在GraphQL API中使用React挂钩来管理状态
- flutter bloc_如何在Flutter中使用Streams,BLoC和SQLite
- 如何在Go中编写防弹代码:不会失败的服务器工作流程
- robot:根据条件主动判定用例失败或者通过
- 动态规划算法——最长上升子序列
- Linux 下 nginx反向代理与负载均衡