DirectDrawEnumerateEx函数枚举的不全?
如题,我现在的机器是上有两块显卡,一块是PCI-E*16的GForce 7600 还有一块插在普通PCI插槽的ATI的RAGE 128 VR,各接一个显示器,设备显示工作正常。
这些天在网上找资料,通过DirectDrawEnumerateEx枚举显卡,就只会找到主显卡GF7600, 而我通过EnumDisplayMonitors函数,就可以找到两个监视器。
我现在希望通过GUID来在不同的显卡上创建表面,可是现在只有通过DirectDrawEnumerateEx的回调函数获得的GUID只有主显卡的0x00000000,找不到普通PIC插槽的ATI显卡。
DirectDrawEnumerateEx函数的调用如下:
hr = DirectDrawEnumerateEx(DDisplayEnumerate, NULL, DDENUM_ATTACHEDSECONDARYDEVICES|DDENUM_NONDISPLAYDEVICES);
或者
HINSTANCE h = LoadLibrary("ddraw.dll");
if (h != NULL)
{
LPDIRECTDRAWENUMERATEEX lpDDEnumEx;
lpDDEnumEx = (LPDIRECTDRAWENUMERATEEX)GetProcAddress(h, "DirectDrawEnumerateExA");
if (lpDDEnumEx)
{
lpDDEnumEx(DDisplayEnumerate, NULL, DDENUM_ATTACHEDSECONDARYDEVICES | DDENUM_NONDISPLAYDEVICES);
}
FreeLibrary(h);
}
结果一样,请知道的朋友帮忙查一下问题