undefined reference to GetPixel
-
Guten Abend,
ich möchte grade ein Programm schreiben, in dem ich GetPixel benutzen möchte.
Vorweg, ich benutze Code::Blocks. Mein Code sieht so aus#include <windows.h> #include <iostream> using namespace std; int main() { HWND myWindowHandler; myWindowHandler = FindWindow (NULL, "FensterTitel"); ShowWindow(myWindowHandler, SW_RESTORE); SetForegroundWindow(myWindowHandler); Sleep(500); SetFocus(myWindowHandler); HDC myDisplayCanvas; myDisplayCanvas = GetDC(myWindowHandler); COLORREF color = GetPixel(myDisplayCanvas, 780, 545); if ( (GetRValue(color) == 255) and (GetGValue(color) == 255) and (GetBValue(color) == 225) ) { std::cout << "Geht!"; } }Das Programm soll also ein Fenster finden, es anzeigen und an den Koordinaten X = 780 Y = 545 die Farbe ermitteln. Ist RGB = 225,225,225 soll das Programm schreiben "Geht!".
Fehlermeldung sieht folgt aus :undefined reference to `_GetPixel@12'
Build finished: 1 errors, 0 warningsBitte schreibt mir jetzt nicht ich soll etwas anderes verwenden, sondern eine Lösung zu der Funktion GetPixel().
Mit freundlichen Grüßen : FreakY
-
Libs gelinkt?
-
Es sollte eig. ohne eine Library funktionieren.
Edit:
Falls es anders nicht gehen sollte, schreibt mir nun doch ne andere Möglichkeit. Wenns geht aber bitte nichts, bei dem ich mir großartig was runterladen muss. Es soll mir jetzt grade nur eine Kleinigkeit abnehmen und soll nicht zu einem größeren Projekt führen o.a.
-
Habt ihr nichts womit man die Farbe einer Stelle auslesen kann ? ...
-
Du benutzt Windows Funktionen. Klar brauchst du eine Library dazu. Aber wenn du den Header hast, wirst du nur noch die libs eintragen müssen.
Probiers mal mit dieser:
winmm.libEDIT:
Sorry diese hier: Gdi32.libNoch ein Edit:
Hier kannst du alles selbst nachschauen:
http://msdn.microsoft.com/en-us/library/dd144909(VS.85).aspx
-
Okay danke, werds mir mal anschauen.
-
Ok habs immer noch nicht so ganz hinbekommen. Kann mir also jemand irgendwas empfehlen, womit ich die Farbwerte eines Pixels ermitteln kann ? Vielleicht eine Funktion, eine Library oder sonst was. Ich hab es zwar mit GetPixel versucht und ihr habt auch gesehen das ich es versucht habe, es aber nicht hinbekomme. Vielleicht hat auch jemand ein Code zu bieten den ich gleich benutzen kann.
so far...
-
Hier ein fertiges Programm:
http://me.germangamedev.de/?page=projects&id=colpi
Da den Code raussuchen darfst du selbst.
-
Vielen Dank !
-
Der Code sieht gut und vernünftig aus, allerdings ein wenig, so scheint mir, fehlerhaft. Mein Code::Blocks hat an 2 Stellen des Code etwas zu meckern, denn der Syntax ist wohl nicht ganz richtig.
window_class.hbrBackground = static_cast<::HBRUSH>(::GetStockObject (WHITE_BRUSH));und
::DefWindowProc (handle, WM_SYSCOMMAND, static_cast<::WPARAM>(id), MAKELPARAM (x, y));Dazu folgende Fehlermeldungen :
In member function
long unsigned int main::initialise(HINSTANCE__*, HINSTANCE__*, TCHAR*, int)': expected<' before '[' token
expected identifier before '[' token
expected>' before '[' token expected(' before '[' token
expected primary-expression before '[' token
expected primary-expression before ':' token
expected]' before ':' token expected)' before ':' token
expected `;' before ':' tokenund
In member function
void main::on\_system\_command(HWND__*, UINT, int, int)': expected<' before '[' token
expected identifier before '[' token
expected>' before '[' token expected(' before '[' token
expected primary-expression before '[' token
expected primary-expression before ':' token
expected]' before ':' token expected)' before ':' token=== Build finished: 17 errors, 0 warnings ===
-
Es war auch nicht die Idee, dass du das jetzt einfach kopierst, sondern suchst, wo das auslesen passiert und dann die Funktionen bei dir einpasst. Das der Quellcode fehlerhaft ist bezweile ich jetzt. Vlt. stimmt was mit deinen Einstellungen nicht..
-
Ich habe nicht kopiert, sondern versucht den Source-Code zu kompilieren.