我試圖用DEVMODE.dmDeviceName
讓我的每一個監視器的名稱:dmDeviceName僅僅是「C」
dmDeviceName
以零結尾的字符數組,指定的「友好」名稱打印機或顯示器;例如PCL/HP LaserJet中的「PCL/HP LaserJet」。該字符串在設備驅動程序中唯一。請注意,該名稱可能會被截斷以適應dmDeviceName數組。
我用下面的代碼:
log.printf("Device Name: %s",currDevMode.dmDeviceName);
但對每臺顯示器的姓名打印只是c
。來自DEVMODE的所有其他信息似乎都可以打印。出了什麼問題?
嗯,當使用EnumDisplaySettingsA時,我得到'不能將參數1從'WCHAR *'轉換爲'LPCSTR',其中參數1是使用'GetMonitorInfo'獲取的monitorInfo.szDevice。 – fredley
這是全部或沒有。您需要'GetMonitorInfoA'和'EnumDisplaySettingsA'。當然,您可以將您的項目配置切換到ANSI。對於背景閱讀:http://msdn.microsoft.com/en-us/library/dd374089(VS.85).aspx –
廣泛轉換爲ANSI的API是['WideCharToMultiByte()'](http:// msdn.microsoft.com/en-us/library/dd374130(VS.85).aspx)。這不是最簡單的,所以如果你可以調用ANSI API,那麼你會發現更容易。 –