VC6调用系统api提示未定义

由于个人需求需要写一个vpn监控程序,监控vpn是否断开连接并做出相应的处理。

在使用VC6编译的时候提示:’RasConnectionNotification’ : undeclared identifier。
当时我就纳闷了,我明明引入了相关头文件居然还提示未定义。但我在WIN7上是可以编译通过的,难道2003的问题?

查找了一下相关资料找到了根本原因,这是因为这些API是NT5以上版本才支持,VC6是98年发布的,此时定义的这个NT版本的宏默认为NT4。
知道了原因解决起来就比较容易了,只要将宏_WIN32_WINNT和WINVER定义为高版本就行了。在StdAfx.h文件中起始处添加:

1
2
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501

再次编译就Ok了。