SystemParametersInfo 关于VERIFY 出错
来源:互联网 发布:炒股看盘软件 编辑:程序博客网 时间:2024/04/29 01:49
xp sp3,vs2008
一个自定义继承与cdialog类,执行下面的代码报错
VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0));
原先在vs2003是好的,百度,
这是由于以前的工程迁移到Visual stutio 2008上,而本人所使用的是XP出现的问题。 这是由于Visual studio 2008里面默认的Windows 版本是vista,而自己现在使用的是XP而出现的。
因为在新的 Windows SDK 6.0 中,其定义如下:
typedef struct tagNONCLIENTMETRICSA{ UINT cbSize; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONTA lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONTA lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONTA lfMenuFont; LOGFONTA lfStatusFont; LOGFONTA lfMessageFont;#if(WINVER >= 0x0600) int iPaddedBorderWidth;#endif /* WINVER >= 0x0600 */}
解决办法:
(一)如果你想用nm.cbSize = sizeof (NONCLIENTMETRICS) ; 这个是低版本,通常所说的0x0501,就在stdafx.h中
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
这个语句的后面加上以下2句
#ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。
#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。
#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
OSVERSIONINFOEX osvi;memset(&osvi, 0, sizeof(OSVERSIONINFOEX));osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);if( !(GetVersionEx ((OSVERSIONINFO *) &osvi)) ){ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) ) return;}NONCLIENTMETRICS ncm;if(osvi.dwMajorVersion <= 5 /*&& && osvi.dwMinorVersion == 1*/)//5000:2000,5001:xp,5002:win2003 ncm.cbSize = sizeof(NONCLIENTMETRICS)- sizeof(ncm.iPaddedBorderWidth);else ncm.cbSize = sizeof(NONCLIENTMETRICS);VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0));
参考:http://hi.baidu.com/vc_net/item/b8c5f761f70b9290c4d2494b
- SystemParametersInfo 关于VERIFY 出错
- SystemParametersInfo 关于VERIFY 出错
- SystemParametersInfo 关于VERIFY 出错
- SystemParametersinfo
- SystemParametersinfo
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 出错。不同系统或者不同版本VS
- 关于assert,ASSERT,TRACE,VERIFY
- 关于assert,ASSERT,TRACE,VERIFY
- 关于assert,ASSERT,TRACE,VERIFY
- Verify
- Verify
- verify
- 关于Assert和verify的区别
- 关于assert,ASSERT,TRACE和VERIFY
- SystemParametersInfo Function
- systemparametersinfo详细
- systemparametersinfo详细
- systemparametersinfo详细
- perl File::Find模块
- Struts2(登陆模块)
- 两端同时写命名管道的测试程序
- lunux下多线程总结
- 黑马程序员_反射概述
- SystemParametersInfo 关于VERIFY 出错
- Script to backorder Move Order
- ASP中input表单验证
- 一道js题目
- mfc vc++ windows程序设计学习顺序
- 639 - Don't Get Rooked
- jdk1.5新特性2之动态参数列表
- 微软提供的SQLHelper类 含完整中文注释
- tomcat的自动重启脚本