Speicher problem bei Klasse
-
Hi @ All.
in der Initialisierungsliste meiner Klasse wird hInstance mit GetModuleHandle(0) initialisiert.
Im konstruktor stimmt der Wert auch noch. (If (hInstance == GetModuleHandle(0)) == true).
Wenn ich aber in einer memberfunc nun diesen Vergleich anstelle, dann ist es = false.
woran kann das liegen?
// H #define _WIN32_WINNT 0x0510 #include <windows.h> #pragma once class CSettingsWnd { public: CSettingsWnd(void); ~CSettingsWnd(void); void Show(HWND hParent); INT_PTR CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK StaticProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); private: HINSTANCE hInstance; }; // CPP #define _WIN32_WINNT 0x0510 #include <windows.h> #include "SettingsWnd.h" #include "script.h" CSettingsWnd::CSettingsWnd(void) : hInstance(GetModuleHandle(0)) { } CSettingsWnd::~CSettingsWnd(void) { } void CSettingsWnd::Show(HWND hParent) { // Hier stimmt hInstance nicht mehr mit GetModuleHandle(0) überein. DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_SETTINGS), hParent, StaticProc, (long)this); }Woran könnte dass den liegen??
Wenn ich versuche, im Show-Member die hInstance = GetModuleHandle(0);, dann stürzt er mit einer Debug-Exception ab.
warum?Danke.
Danke.
-
Script-Styler, Ich habe hier einen Buchtipp für dich:
-
Warum? Was ist falsch?
Ist das alles huddel???
-
Was will ich mit "Programmieren für Kinder"???
Meine fresse, für wie blöd haltet ihr mich???

Gibt es ddenn nicht was vernünftiges, wo WinAPI schritt für schritt erklärt wird? und das als PDF?
-
Ich muss technou recht geben, mach erstmal das buch für Kids^^.....
-
ÜBERREDET.
ich werd mal sehen, wo ich das bekomm.BackToTopic:
Aber was ist nun falsch?
-
Also ich versteh dein Problem nicht ganz, aber trotzdem versuch ich dir mal zu helfen.
ich weiss nicht ob man das hier darf, aber ich geb dir mal die icq-nummer von einem Freund der dir bestimmt helfen kann.
Aber sag nicht das du die Nummer von mir hast _
Adde ihn mal.
317806052
Hofe konnte dir i-wie helfen.
-
@tenchou:
Wenn du schon einen Buchtipp für mich hast, dann wirst du auch bestimmt wissen wo das Problem liegt.
Es tritt mehrfach auf.
Einmal mit der hInstance und das zweite mal mit einem TCHAR[].
Woran könnte es liegen?
Es kann doch nicht sein, dass ich eine Variable im Konstruktor setze, und sie nicht mehr den selben Zustand hat. Sie st private und so von außeneinwirkungen geschützt.
-
Hast du überhaupt noch das selbe Objekt in der Hand, das oben angelegt wurde?
-
Script-Styler schrieb:
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK StaticProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);Für was soll denn das Schlüsselwort static bei der Methode StaticProc() gut sein???
Martin
-
Script-Styler schrieb:
@tenchou:
Wenn du schon einen Buchtipp für mich hast, dann wirst du auch bestimmt wissen wo das Problem liegt.Ja, der Fehler liegt in deinem Code. Du machst etwas verbotenes, aber das ist nicht ersichtlich aus deinem geposteten Ausschnitt. Hast du das Buch schon durchgearbeitet?
-
Das static ist dafür, dass ich die StaticProc in die DialogBox als Parameter aufnehmen kann und die DialogProc ist die Prozedure. Die StaticProc leitet alles an die DialogProc weiter.
Was mache ich denn verbotenes???Ich rufe vom Hauptdialog aus das Show-Member mit hDlg als Parent auf.
Aber warum verbotenes???
-
Ich bin doch kein Hellseher!