解决方案 »

  1.   

    while (EnumDisplayDevices(NULL, i++, &dd, 0))    后面有个break 在不是PRIMARY_DEVICE时中断了
      

  2.   

    你是看我传的图片是因为PRIMARY_DEVICE中断了?还是运行代码到PRIMARY_DEVICE就会中断?
    应该不会 吧,这个我也改过和增加过,MSDN上描述的stageflags共有6个,PRIMARY_DEVICE这个意思是主要的设备,其他的意思也没有表明是独显,集显独显和外接显示器设备有点模糊了,不知道这里对不对?
    反正当i=1,2时,debug可以看到读出了Intel device,可是运行都会失败。
      

  3.   

    试试调试框中输出所有信息
     
    #pragma pack(push, 8)
      typedef struct _DISPLAY_DEVICEEX {
        DWORD cb;
        TCHAR DeviceName[32];
        TCHAR DeviceString[128];
        DWORD StateFlags;
        TCHAR DeviceID[128];
        TCHAR DeviceKey[128];
      } DISPLAY_DEVICEEX, *PDISPLAY_DEVICEEX;
    #pragma pack(pop)  DISPLAY_DEVICEEX dd = { sizeof(DISPLAY_DEVICEEX) };  int iDisp = 0;
      while(  EnumDisplayDevices(NULL, iDisp++, (DISPLAY_DEVICE*)&dd, 0) )
      {
        TRACE(_T("Name=[%s] Str=[%s] Flag=%08XH ID=[%s] Key=[%s]\n"), 
          dd.DeviceName, dd.DeviceString, dd.StateFlags, dd.DeviceID, dd.DeviceKey);
      }
      

  4.   

    用TRACE输出的话要加afx.h,加了之后就会有#error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]这样的错误,如果在设置里再改成在dll中使用MFC又有其他很多错误了。
      

  5.   

    NVAPI_INTERFACE NvAPI_EnumPhysicalGPUs  ( NvPhysicalGpuHandle  nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS],  
      NvU32 *  pGpuCount  
     ) 
     这个才是Nvidia的官方函数
      

  6.   

    这个才是呀?我那个是demo工具,应该只是读出集显的sample而已,
    你可以把链接发给我看看嘛?谢谢
      

  7.   

    你可以去Nvidia的官方去下载。。