Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Handles gehen verloren (https://www.delphipraxis.net/193538-handles-gehen-verloren.html)

EWeiss 12. Aug 2017 09:05


Handles gehen verloren
 
Seltsam..

Ich habe jetzt GDI+ zu meinem Projekt addiert.
Seitdem stelle ich fest das meine Handles verloren gehen.

Die sind im Header definiert.
Code:
HWND MovieHandle;
HWND hMain;
erst dann wenn ich diese zusätzlich mit static versehe bleiben diese erhalten.
Warum ist das so?

Und muss ich jetzt alle meine Handles mit static versehen obwohl sie schon public definiert sind?

Oder ich muss sie neu einlesen.
Code:
MoveWindow(GetDlgItem(hWnd, ID_OPEN), 9, lpRect.bottom + 23, 62, 25, TRUE);
Aber genau das wollte ich eigentlich verhindern indem ich diese Public definiere.

gruss

jaenicke 12. Aug 2017 09:54

AW: Handles gehen verloren
 
Der Unterschied zwischen static und nicht static ist, dass static unabhängig von einer Instanz ist.

Ich vermute daher, dass die Instanz dazwischen zerstört wird, so dass auch die Inhalte wie Handles verloren gehen.

EWeiss 12. Aug 2017 10:03

AW: Handles gehen verloren
 
Zitat:

Zitat von jaenicke (Beitrag 1378634)
Der Unterschied zwischen static und nicht static ist, dass static unabhängig von einer Instanz ist.

Ich vermute daher, dass die Instanz dazwischen zerstört wird, so dass auch die Inhalte wie Handles verloren gehen.

JA.
Ich denke das ich meine Handles in eine Struct verlegen muss damit diese von allen Funktionen und Subroutinen verwendet werden können.
Statische Definitionen werden ja nur in einer speziellen Funktion aufbewahrt. Der wert wird dann von einem Aufruf zum andern gehalten.
Ich hoffe mal das meine angaben korrekt sind.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz