Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

11

07.06.2009, 15:25

Ich behaupte mal, der Fehler liegt wo anders, das hier sieht doch ziemlich safe aus... Bis auf die Tatsache, dass (so wie ich es jetzt hier verstanden habe) man den Pointer, den GetCursorPos() liefert, nicht deleteten sollte?
<< an dieser Stelle ist eine Signatur verstorben >>

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

12

07.06.2009, 15:42

Zitat von »"the[V«

oid"]Ich behaupte mal, der Fehler liegt wo anders, das hier sieht doch ziemlich safe aus... Bis auf die Tatsache, dass (so wie ich es jetzt hier verstanden habe) man den Pointer, den GetCursorPos() liefert, nicht deleteten sollte?

Nein, auf keinen Fall!

Mal abgesehen davon, dass die WinAPI kein delete kennt wäre das völlig miserables Design das dem Aufrufer zu überlassen.. Im übrigen kriegst du da keinen Pointer zurück, sondern du übergibst einen Pointer auf ein POINT Objekte, dass von der Funktion gefüllt wird..

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

13

07.06.2009, 15:48

Oh, ja, Mist, mir fehlt wohl etwas Aufmerksamkeit ^^
<< an dieser Stelle ist eine Signatur verstorben >>

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

07.06.2009, 15:48

In GetColor() fehlt definitiv ein ReleaseDC():

http://msdn.microsoft.com/en-us/library/dd162920.aspx

15

07.06.2009, 18:16

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const ::COLORREF getColor(::POINT const& point)
{
    const ::HDC hDC(::GetDC(NULL));
    const ::COLORREF color(::GetPixel(hDC, point.x , point.y));
    ::ReleaseDC(hDC);
    return color;
}

const unsigned int getMouseX()
{
    POINT point = {0};
    ::GetCursorPos(&point);
    return point.x;
}

const unsigned int getMouseX()
{
    POINT point = {0};
    ::GetCursorPos(&point);
    return point.y;
}

const bool isLoad(::POINT const& point, ::COLORREF const& color)
{ return GetColor(point) == color; }
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

16

07.06.2009, 20:31

Tach,

genau da war der Leak, mit ReleaseDC(0,desktop) klappt es ;)

danke.

Werbeanzeige