2017-02-18 6 views
0

Я новичок в C++, и я хочу написать простую программу, которая выводит цветовую температуру монитора на консоль. Вот что у меня есть:Неопределенная ссылка на 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; 

}

Однако составление мои проекты урожайности:

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) 

Любая помощь будет оценен по достоинству!

Спасибо!

+0

Для gcc возьмите имя файла компоновщика ('whatever.lib') из MSDN, отпустите' .lib' и добавьте '-l' в начало. Например, 'user32.lib' становится' -luser32'. – andlabs

ответ

-2

Чтение сообщения об ошибке: «GetMonitorColorTemperature.h» не определено. Это означает, что он не может найти файл заголовка. Вы поместили файл GetMonitorColorTemperature.h в тот же каталог, что и ваш файл cpp, таким образом он сможет найти библиотеку.

+0

спасибо! Фактически, я добавил только файл заголовка HighLevelMonitorConfigurationAPI.h, как предложено в ссылке Microsoft https://msdn.microsoft.com/en-us/library/windows/desktop/dd692941(v=vs.85).aspx –

+0

You полностью неверно истолковывают ошибку; это ошибка компоновщика, и нет заголовочного файла 'GetMonitorColorTemperature.h'. – andlabs

+0

@andlabs, спасибо тоже! Итак, каково решение? –

Смежные вопросы