OpenThread的解决之道

最近做一个项目,基于公司的一个产品进行开发,使用VC 6.0 进行开发,使用到 Win API 函数 OpenThread 函数,编译时出现: ‘OpenThread”: undeclared identifier 的问题。我查了一下 msdn, 其配置要求是:

 

Requirements

  Windows NT/2000/XP: Included in Windows 2000 and later.
  Windows 95/98/Me: Included in Windows Me.
  Header: Declared in Winbase.h; include Windows.h.
  Library: Use Kernel32.lib.

 

  我很奇怪,这个 VC 6.0 应该支持的啊。开始我以为这是缺补丁之故,把 VC 6.0sp6 装上(之前已经安装了 sp5 ),编译依然出现 ‘OpenThread”: undeclared identifier 的错误。我上网查了一下资料,发现是 Platform SDK 版本过低的缘故,于是到网上下载了 Win XP sp2 SDK ,然后在 VC Tools ——〉 Option 菜单的 Include Files Library Files Win XP sp2 SDK 的相关头文件和库文件的路径添加进去,然后编译程序,发现依然出现:

‘OpenThread”: undeclared identifier 的错误。

 

  我又查了一下 MSDN, 发现 OpenThread 函数是在 Winbase.h 声明的。我把 VC 安装目录下的 VC98 文件夹的 Winbase.h Microsoft Platform SDK for Windows XP SP2 目录下的 Winbase.h 都打开比较了一下,发现在 Microsoft Platform SDK for Windows XP SP2 目录下的 Winbase.h OpenThread 函数有声明,而 VC98 文件夹的 Winbase.h 则没有。由此我猜到了原因所在:因为在 Tools ——〉 Option 菜单的 Include Files Library Files VC98 的头文件和库文件设在 Microsoft Platform SDK for Windows XP SP2 的前面,因此编译器肯定是优先使用 Winbase.h ,而不使用 Microsoft Platform SDK for Windows XP SP2 目录下的 Winbase.h ,因此解决办法是在 Tools ——〉 Option 菜单的 Include Files Library Files 把二者的顺序挪一下,把把 Win XP sp2 SDK 的相关头文件和库文件放在 VC98 的头文件和库文件的前面,让编译器优先使用。那么能不能把 VC98 的头文件和库文件在 Tools ——〉 Option 菜单的 Include Files Library Files 直接删除呢?答案是不行的,因为 Microsoft Platform SDK for Windows XP SP2 并不包含所有 VC98 目录下的头文件和库文件,如 expct.h msvcrt.lib

 

  实际上后来我发现安装完Microsoft Platform SDK for Windows XP SP2 在开始菜单上有一组菜单,其中的一个菜单项是:Register PSDK Directorues with visual studio 如下图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值