我正在学习如何在C中制作Windows应用程序,并尝试使用SetPixel(HDC hDC, int x, int y, COLORREF crColor)
设置单个像素。
在我添加该行之前,我从未遇到过编译错误。我当然包含windows.h。我一直在寻找答案,我从来没有找到任何答案。
它提供错误" undefined reference to _imp__SetPixel@16' "
要编译,我使用命令" gcc -g -Wall -o $(EXENAME) $(SRC) "
。没有花哨的IDE。
如果有人能告诉我为什么会说 imp _ 和@ 16部分,请同样。我以前从未见过。
编辑:我已经找到_imp在this site的含义。
答案 0 :(得分:3)
除了包含头文件外,我相信你还需要链接到库libgdi32.a或gdi32.lib。
如下所述,_imp__SetPixel @ 16是您正在调用的函数SetPixel()的错位名称。
答案 1 :(得分:0)
来自the MSDN website,您应该将#include <Windows.h>
包含在与其他头文件相同的区域中(如stdio.h,stdlib.h,string.h等)。
如果这不起作用,您可能希望尝试使用链接器选项进行编译,链接器选项链接到同一网站上列出的正确库(Gdi32.lib)。
要仔细检查的另一件事是Gdi32.dll在
中一个。在执行目录或
中B中。在Windows上的system32 / sysWOW64文件夹中
我推荐A,因为如果您尝试将程序发送给某人,.dll文件将与您的可执行文件一起使用(并非所有计算机都具有相同的.dll文件)。
干杯,
詹森。