#include <iostream>
#include <windows.h>
#include <string>
#include <ctime>
#include<stdio.h>
using namespace std;
int main()
{
HDC dc = GetDC(NULL);
COLORREF color = GetPixel(dc, 10, 10);
ReleaseDC(NULL, dc);
cout << color;
return 0;
}
有一个错误说:
[Linker error] undefined reference to `GetPixel@12'
ld returned 1 exit status
[Build Error] [Project1.exe] Error 1
我正在使用Dev-C ++编译器
答案 0 :(得分:3)
您需要将Gdi32.lib
添加到依赖关系列表中。 GetPixel()
函数不在默认库中。
编辑:
在Visual Studio中,您可以添加如下依赖项:
菜单:项目 - &gt;属性 - &gt;配置属性 - &gt;链接器 - &gt;输入
“附加依赖项”选项如下所示:
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
向其添加Gdi32.lib
。
答案 1 :(得分:0)
得到该错误,我通过将 Visual Studio代码删除为我的IDE并切换到 Visual Studio 2019 来解决了该错误。 VS19自动解决了我的依赖错误!希望对您有所帮助!
答案 2 :(得分:-2)
要使用Win32 API,您需要创建一个Windows应用程序。
这意味着使用WinMain函数而不是main()函数。
它可以(可选)还包括使用窗口过程创建窗口和处理窗口消息。
执行此操作后,您将能够调用Win32 API GetPixel。
如果您坚持创建控制台或非Windows应用程序,那么您必须定义自己的GetPixel,它可能会直接访问视频内存。
因此,首先创建一个WinMain函数而不是main()。 (当然,您还需要链接到相应的库。)