最近,做一个小软件,需要设置一个网卡对应多个IP。此前,已经参考vcbase上的文章(这篇文章确实很经典,网上很多转载)封装过一个类(原理是修改注册表中和IP相关的部分,最后调用dhcpcsvc.dll中的一个未公开函数DhcpNotifyConfigChange实现不重启电脑让设置的IP生效)。实践结果显示:这个方案仅仅适用于一个网卡配置一个IP。如果是一个网卡配置多个IP呢,只有一个IP能立即生效,其他IP不会生效。要想配置的多个IP生效,需要先禁用“本地网络连接”然后再启用。
无奈之下,在网上狂搜,后来看到也有其他人遇到和我一样的问题。本来想是否能通过C++来实现“先禁用本地网络连接再启用”,但是搜索不到具体的实例代码(自己的Windows编程水平不高,又比较懒,只有思路没有代码,我就无法实现了!)还好,有人推荐用WMI来实现,而且有具体的示例代码。于是,我把代码下载下来,编译。郁闷的事儿来了,编译中出现了下面的错误:
我又在网上搜索一通,才知道是我的VC6.0缺少SDK开发库。那我该安装哪个SDK库呢?最后找到了几篇参考文章。
下面是相关参考(非常感谢写下这些总结的同学们):
(1)《Microsoft Platform SDK For VC6.0》从中可以知道VC6.0该用哪个版本的SDK“最新的Windows® Server 2003 SP1 Platform SDK 已不再支持Visual C++ 6.0,支持VC6的最近的Platform SDK版本是Microsoft Platform SDK February 2003”。同时博主分享了一个可以下载SDK的FTP站点。
遗憾的,我之前居然以为支持VC++6.0的SDK是这个版本:Windows® Server 2003 SP1 Platform SDK,下载并安装这个版本后,编译时报错:
于是,继续在网上搜索,才发现是我的SDK版本错啦!哎,鄙视一下自己,看东西不够仔细⊙﹏⊙b汗!
(2)《VC6应用WMI获取系统信息》该文也分享了SDK的下载地址,此外还有作者自己设置VC++6.0的心得。
P.S.这年头,还在用VC6.0作为主要开发环境的很少了吧!我就是一直用这个的,还好,历史悠久的工具有个好处“用的人多,介绍它的资料也好找”:)