hur.cn - 华软网

 热门搜索

vs2005 unicode模式下为什么调用enumdisplaysettings总是失败?

  作者:未知    来源:网络    更新时间:2011/5/29
代码如下:

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))
---华软 网友回答---
GetLastError()一下,看看错误代码是什么先
---华软网友回复---
要unicode就都用unicode的
EnumDisplayDevicesA换成EnumDisplayDevicesW

你直接用头文件的EnumDisplayDevices就行了,为何还要GetProcAddress?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。