2014-06-09 65 views
1

我正在學習如何在C中製作Windows應用程序,並試圖使用SetPixel(HDC hDC, int x, int y, COLORREF crColor)來設置各個像素。如何解決未定義的參考SetPixel()?

我從來沒有編譯錯誤,直到我將它添加到它。我當然有windows.h。我已經四處尋找答案,我從來沒有發現任何東西。

它給人的錯誤" undefined reference to [email protected]' "

編譯,我使用的命令" gcc -g -Wall -o $(EXENAME) $(SRC) "。沒有花哨的IDE。 如果有人能告訴我爲什麼說imp_和@ 16部分,請做好。我從來沒有見過。

編輯:我發現_imp的意思是在this site

+0

這是錯位的名字。檢查你如何添加stnd Windows庫。 –

回答

0

the MSDN website,你應該包括在#include <Windows.h>和你其他頭文件一樣(如stdio.h,stdlib.h,string.h等)。

如果這不起作用,您可能需要嘗試使用鏈接器選項進行編譯,該鏈接器選項鍊接到同一網站上列出的正確庫(Gdi32.lib)。

另一個要仔細檢查是GDI32.DLL是在任一

答:在你的執行目錄或

B.在Windows的SYSTEM32/SYSWOW64文件夾

我推薦一個,因爲如果您嘗試將您的程序發送給某人,那麼.dll文件將與您的可執行文件一起使用(並非所有計算機都具有相同的.dll文件)。

乾杯,

Jensen。

2

除了包含頭文件,我相信你還需要鏈接到庫libgdi32.a或gdi32.lib。

正如以下指出的那樣,_imp__SetPixel @ 16是您調用的函數SetPixel()的一個錯誤名稱。

+0

這是一個破損的名稱,而不是typedef。 –

+0

謝謝。我認爲這隻與IDE有關。 – Znapi