vs2005 unicode模式下为什么调用enumdisplaysettings总是失败?
尘埃黎明 2011-05-29 08:55:37 代码如下:
typedef BOOL (WINAPI* LPEnumDisplayDev)(PVOID,DWORD,PDISPLAY_DEVICE,DWORD);
LPEnumDisplayDev pEnum= NULL;
HMODULE hand= ::LoadLibrary(_T("user32.dll"));
if(hand)
pEnum=(LPEnumDisplayDev)::GetProcAddress(hand,"EnumDisplayDevicesA");
DISPLAY_DEVICE dev;
memset(&dev,0,sizeof(DISPLAY_DEVICE));
dev.cb= sizeof(DISPLAY_DEVICE);
CheckDVI:
if(pEnum)
{
int i=0;
int iModeNum =0;
while((*pEnum)(NULL,i++,&dev,0))
{
DEVMODE dm;
ZeroMemory(&dm, sizeof(dm));
dm.dmSize = sizeof(dm);
TCHAR *deviceName= (TCHAR*)dev.DeviceName;
//DWORD err=0;
if(EnumDisplaySettings(deviceName,ENUM_CURRENT_SETTINGS, &dm))