Ich habe es jetzt so gemacht. m_hwnd enthält das Handle, welches ich innerhalb der View mit GetSafeHwnd() bestimmt habe. Bei GetParentFrame() kracht es allerdings, da das FensterHandle des ParentFrames anscheinend unbekannt ist.
Da diese Lösung nicht zu klappen scheint, will ich es jetzt mit deiner Lösung probieren. Ich wusste gar nicht, dass man Funktionen innerhalb der exe exportieren kann. Wie macht man das? Wie in einer DLL? Wie kannst du die Funktion GetWindowExe aus der DLL aufrufen? Hast du an die DLL einen Funktionszeiger übergeben?
Leider klappt es nicht. Ich bekomme einen Laufzeitfehler beim Aufruf dieser Funktion beim Bestimmen von pView. Was mache ich anders als du? Naja, ich bin auf jeden Fall gespannt darauf, wie du es hinbekommen hast.
Naja, macht ja nichts. Morgen wird das Problem ja dann gelöst sein. Ich muss mir ja eigentlich nur deinen Code der exportierten Funktion GetWindowExe anschauen. Ich bin schon gespannt, wie du es gemacht hast.
Mist. Hab ganz verschwitzt das ich das FrameWnd in der DLL hab. Hab das Projekt schon lange nicht mehr gebraucht. Aber probier mehr folgendes. Auf das wollte ich eigentlich hinaus. Nur Pseudo Code - eine Testumgebung zu erstellen ist leider sehr schwierig :S Client
Folgendes Programm hab ich mal geschrieben und hab viel dabei gelernt - d.h. das sseeehhhrrr viele unsaubere Codestellen dabei sind - aber ich wollte ja dabei lernen Habe mom viel Stress - sonst würde ich noch einwenig testen - sorry http://mike.dev-geeks.org/stuff/index.php?dir=./dirk
mfg Edit: Wenn du das Programm starten willst musst du in GIE nach CGIEApp::OnConnect suchen und die Verbindung mit freesql wählen - bei der anderen // - ansonsten kack das Programm evntl ab - hab die Überprüfung erst ganz zum Schluss eingebaut - weiß nicht ob das die neuste zip ist Dieser Post wurde am 16.08.2004 um 21:00 Uhr von mike editiert.
Ich habe jetzt erst mal deinen angegebenen Code getestet. Damit ich ihn kompilieren konnte, musste ich
Code:
typedef void (CLBFUNC)(CView*);
schreiben. Mit unsigned ging es nicht. Anstatt &m_pView habe ich m_pView geschrieben.
Dann habe ich es ausprobiert. Aber dasselbe Problem wie immer. Beim Holen der Active View ist es abgestürzt. Oder habe durch meine Änderungen irendetwas falsch gemacht?
Naja, ich werde mir jetzt als nächstes deinen Code anschauen. Vielleicht finde ich dann eine Möglichkeit.
Echt Wahnsinn, wie lange ich nun schon an diesem Problem klebe.
Stimmt. CLBFUNC muss natürlich CView sein. Trotzdem ist es mir unklar, wie das Programm beim Aufrufen von GetActiveView im Client abstürtzen kann. An welche Stelle springt der Debugger?
Laut Debugger ist pChild 0x0000000. Deshalb stürzt es bei der Bestimmung von pView ab. Bei pFrame zeigt der Debugger zwar einen Wert an, sagt aber, dass das hwnd=??? ist.