2017-02-18 4 views
0

Ich bin neu in C++ und ich möchte ein einfaches Programm schreiben, das die Monitor-Farbtemperatur an die Konsole ausgibt. Hier ist, was ich habe:Undefinierter Verweis auf GetMonitorColorTemperature

#include <iostream> 
    #include <HighLevelMonitorConfigurationAPI.h> 
    using namespace std; 

    int main() { 

     HMONITOR hMonitor = NULL; 

     // Get the monitor handle. 
     hMonitor = MonitorFromWindow(GetDesktopWindow(), MONITOR_DEFAULTTOPRIMARY); 

     MC_COLOR_TEMPERATURE *colTemp; 

     BOOL bSuccess = FALSE; 

     bSuccess = GetMonitorColorTemperature(hMonitor, colTemp); 

     if (bSuccess){ 
      cout << colTemp << endl; 
     } 


     return 0; 

}

jedoch die Erstellung meiner Projekte ergibt:

Building target: FirstC++Project.exe 
Invoking: Cygwin C++ Linker 
g++ -o "FirstC++Project.exe" ./src/FirstC++Project.o 
./src/FirstC++Project.o: In function `main': 
/cygdrive/c/Users/User/workspace/FirstC++Project/Debug/../src/FirstC++Project.cpp:35: undefined reference to `GetMonitorColorTemperature' 
/cygdrive/c/Users/User/workspace/FirstC++Project/Debug/../src/FirstC++Project.cpp:35:(.text+0x68): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `GetMonitorColorTemperature' 
collect2: error: ld returned 1 exit status 
make: *** [makefile:47: FirstC++Project.exe] Error 1 

05:42:02 Build Finished (took 5s.242ms) 

Jede Hilfe wird geschätzt!

Vielen Dank!

+0

Für gcc, nehmen Sie den Linker-Dateinamen ('was.lib') von MSDN, legen Sie die' .lib', und fügen Sie '-l' an den Anfang. Zum Beispiel wird 'user32.lib' zu '-luser32'. – andlabs

Antwort

-2

Das Lesen der Fehlermeldung sagt "GetMonitorColorTemperature.h" ist undefiniert. Dies bedeutet, dass die Header-Datei nicht gefunden werden kann. Haben Sie die GetMonitorColorTemperature.h-Datei in das gleiche Verzeichnis wie Ihre cpp-Datei gestellt, damit sie die Bibliothek finden kann?

+0

danke! Eigentlich habe ich nur die Header-Datei HighLevelMonitorConfigurationAPI.h hinzugefügt, wie in der Microsoft-Verknüpfung https://msdn.microsoft.com/en-us/library/windows/desktop/dd692941(v=vs.85).aspx –

+0

Sie vorgeschlagen den Fehler vollständig falsch lesen; Dies ist ein Linker-Fehler, und es gibt keine Header-Datei 'GetMonitorColorTemperature.h'. – andlabs

+0

@andlabs, danke auch! Also, was ist die Lösung? –

Verwandte Themen