2017-02-18 137 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,从MSDN获取链接器文件名('whatever.lib'),放下'.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

您完全误读错误;这是一个链接器错误,并且没有'GetMonitorColorTemperature.h'头文件。 – andlabs

+0

@andlabs,也谢谢你!那么,解决方案是什么? –