vs2008中调试一个多目标跟踪程序的时候,遇到过此问题,在release下回忽略此问题,在release版本下不用关心这个问题,也就是系统帮你给屏蔽了,但是问题还是存在的,在debug环境下,报这样的错误。

错误原因:
这段代码本来没错,错在平台上。
nm.cbSize = sizeof (NONCLIENTMETRICS) ; 这个是低版本,通常所说的0x0501。低于系统与VS编译器2个版本(VS2008/VS2010)的,就会出问题。解决方法:
就在stdafx.h中
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#defineVC_EXTRALEAN
#endif
这个语句的后面加上以下几句:
#ifndefWINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
本文介绍在VS2008环境下调试多目标跟踪程序时遇到的一个问题及解决方案。问题出现在DEBUG模式下,与平台版本不匹配有关。通过在stdafx.h文件中设置特定宏定义来指定Windows版本,解决了编译错误。
1671

被折叠的 条评论
为什么被折叠?



