在使用播放库SDK时,尝试获取显卡和监视器的信息时,需要用到函数PLAYM4_API BOOL __stdcall PlayM4_GetDDrawDeviceInfo(DWORD nDeviceNum,LPSTR lpDriverDescription,DWORD nDespLen,LPSTR lpDriverName ,DWORD nNameLen,HMONITOR *hhMonitor);
我在编译时遇到了以下错误:
error C2061: syntax error : identifier 'HMONITOR'
google了一下,发现问题在WINVER上。
#if (WINVER > 0x0400)
//注意:
// 支持多显卡的这些函数,建议在Win2000及以后版本使用;
// WINVER定义在"Windows.h"里,标志windows版本号。
// 在VC6.0自带的"windows.h"中,WINVER 被定义为 0x0400(表示NT4.0)。
// 而Windows2000及以后版本实际版本号应该大于0x0400,如果要保持定义
// 和实际版本相同,请下载安装Microsoft 最新的Platform sdk
// (http://www.microsoft.com/msdownload/platformsdk/sdkupdate/)并设置
// 并设置新安装的sdk为最先包含的路径;
//
// 当WINVER>0x0400 时HMONITOR 定义在"Windef.h"里.否则定义在"MULTIMON.H";
// 而实际上如果包含了"MULTIMON.H",可能会出现Link错误。如果要使用HMONITOR这个
// 数据类型,应该保证WINVER>0x0400(如果不想安装最新SDK,作为一个不提倡的办法,
// 可以自定义WINVER 在你的STDAFX.H头文件中)。 ///
//初始化显示设备 HIK_PLAYM4_API BOOL __stdcall Hik_PlayM4_InitDDrawDevice();
//释放显示设备 HIK_PLAYM4_API void __stdcall Hik_PlayM4_ReleaseDDrawDevice();
//获得系统中总的显示设备数目; HIK_PLAYM4_API DWORD __stdcall Hik_PlayM4_GetDDrawDeviceTotalNums();
//设置使用的显卡 HIK_PLAYM4_API BOOL __stdcall Hik_PlayM4_SetDDrawDevice(LONG nPort,DWORD nDeviceNum);
//得到显卡和显示器信息; HIK_PLAYM4_API BOOL __stdcall Hik_PlayM4_GetDDrawDeviceInfo(DWORD nDeviceNum,LPSTR lpDriverDescription,DWORD nDespLen,LPSTR lpDriverName ,DWORD nNameLen,HMONITOR *hhMonitor);
一种不提倡的办法是在stdafx.h中
#define WINVER 0x0510