greatws
C/C++/VC++——不怕做不到,只怕想不到
Email:greatws # 163.com
QQ:34607100
C++博客
首页
新随笔
联系
聚合
管理
随笔-16 评论-116 文章-0 trackbacks-0
以后要注意stdafx.h和targetver.h里的系统版本定义啊
转载请注明出处
http://www.cppblog.com/greatws/archive/2008/05/05/48933.html
做了个DNS查询有关的程序,用到了DnsQuery和DnsRecordListFree这2个函数,拿到导师那里一用,竟然出现一个对话框,“无法将函数DnsFree定位于动态连接库Dnsapi.dll上”,我就奇怪了,在我机器上是好好的。最后一想,导师那边是win2000的,我是winXP的,可能API函数改变了。于是回来查了下MSDN,看到Requirements是Requires Windows Vista, Windows XP, or Windows 2000 Professional.,没错啊有windows2000的阿,最后鼠标放到DnsRecordListFree上,见到一个宏#define DnsRecordListFree(p,t) DnsFree(p,DnsFreeRecordList),WK函数被改变了!!!查了下DnsFree这个函数,Requires Windows Vista or Windows XP.,只能在Vista和XP上用,难怪找不到了,那就改啊,翻到windns.h看到
#if
(_WIN32_WINNT >= 0x0501)
#define
DnsRecordListFree(p,t) DnsFree(p,DnsFreeRecordList)
#else
VOID
WINAPI
DnsRecordListFree(
__inout_opt PDNS_RECORD pRecordList,
__in DNS_FREE_TYPE FreeType
);
#endif
/* _WIN32_WINNT >= 0x0501 */
当版本大于等于0x0501时就定义这个。。。看看定义的是什么版本,targetver.h
#ifndef WINVER
//
指定要求的最低平台是 Windows Vista。
#define
WINVER 0x0600
//
将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINNT
//
指定要求的最低平台是 Windows Vista。
#define
_WIN32_WINNT 0x0600
//
将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
我定义成0x0600这里就要使用DnsFree这个函数了,而Windows2000的版本号是0x0500,WinXP是0x0501,难怪在导师的机器上会说无法定位了,现在把windows版本号改为0x0500,那也就是执行else部分的宏,就是直接使用DnsRecordListFree这个函数了,速度行动!!wait~~wait~~wait~~编译通过,拿过去测试,一切正常,OK了。
看来以后编程要注意版本号了,以提供对不同版本操作系统的兼容性。以前一直都忽略这个问题- -汗个
by greatws
posted on 2008-05-05 21:50
greatws
阅读(6886)
评论(3)
编辑
收藏
引用
评论:
#
re: 以后要注意stdafx.h和targetver.h里的系统版本定义啊 2008-05-06 09:17 |
梦在天涯
haha,这个targetver.h只有在08才有的把!
回复
更多评论
#
re: 以后要注意stdafx.h和targetver.h里的系统版本定义啊 2008-05-06 17:48 |
Ashuar
想必楼主是个MM,嘿嘿!用这么粉的打底!
回复
更多评论
#
re: 以后要注意stdafx.h和targetver.h里的系统版本定义啊
2008-05-06 19:35 |
greatws
@梦在天涯
恩,以前版本的VC版本定义都在stdafx.h里
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(8)
给我留言
查看公开留言
查看私人留言
随笔档案
2019年8月 (1)
2009年6月 (1)
2009年5月 (1)
2008年12月 (1)
2008年10月 (1)
2008年9月 (4)
2008年8月 (3)
2008年5月 (1)
2008年4月 (3)
积分与排名
积分 - 81636
排名 - 288
最新评论
1. re: UTF8 URL的字符串转换
我看到
--的撒
2. re: OLE操作Excel编译错误处理
楼主动手能力很强啊
--bluechen
3. re: Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
评论内容较长,点击标题查看
--home page
4. re: Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
很详细,很不懂Ansi、Unicode、UTF8字符串之间的转换,今天学习了。可是博主的文章,为什么都不更新啊。
--slip ring
5. re: Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
http://www.moflon.com
--slip rings
评论排行榜
1. 谈谈C/C++和.NET以后的走向(27)
2. Ansi、Unicode、UTF8字符串之间的转换和写入文本文件(26)
3. QQ找茬辅助工具的制作(15)
4. 今天做了个小试验,类成员变量的初始化,发现放在参数列表和构造函数体内是一样的(12)
5. 被忽悠了,一直以为lea和mov指令差不多的,今天算是知道了,顺便测试了下C内联汇编的效率(12)