Programm startet nicht! Dialog-Anwendung und Consolenoutput?
-
Hallo,
mein Problem ist, dass mein Programm auf den PC mit der Entwicklungsumgebung problemlos läuft, aber wenn ich das Programm auf einen anderen PC kopiere, dann passiert garnichts!Wo könnte ich Anfangen nach dem Problem zu suchen?
Ich habe mir gedacht ich schreibe an allen wichtigen Stellen Ausgaben auf die Console. z.B.:
// Debug - Informationen auf der Console ausgeben! cout << "Initialisiere Dialog\n";Aber die Ausgaben kommen nicht auf der Console an. Weiss jemand was ich falsch mache?
Danke
Walter
-
Hast du eine Konsolenanwendung? Oder öffnest du die Konsole mit AllocConsole? (dann funktioniert cout nicht)
-
Vielleicht hilft das:
Casting
CString sTest("Dein Text"); cout << (const TCHAR*)sTest<< endl;
-
Wie funktioniert gar nichts? Öffnet sich die Konsole, schließt sich aber sofort wieder?
-
Hallo,
ich habe eine dialogfeldbasierende Anwendung! Mit es passiert nichts meine ich, dass ich einen Doppelklick mache, aber es passiert überhaupt garnichts, kein Fenster, keine Fehlermeldung, einfach nichts.Zur Ausgabe auf die Konsole.
Die Ausgaben auf die Konsole wollte ich einfach mit cout wie im Beispiel gezeigt machen, damit ich wenigsens herausbekomme, an welche Stelle das Programm einfach abstürtzt, bzw. ob es überhaupt etwas tut. Aber anscheinend ist die Standardausgabe stdout nicht gesetzt bzw. nicht auf diese Konsole auf der ich das Programm von Hand starte!Danke
WalterEdit: Ich verwende momentan AllocConsole() nicht! Muss ich das und wenn ja, wie kann ich dann Daten auf der Konsole ausgeben?
-
Benutz doch eine MessageBox
-
Ok,
habes jetzt mit MessageBox gemacht!Meine Anwendung stürtzt ab, wenn ich DoModal des Dialogs aufrufe!
CGez015Dlg dlg; m_pMainWnd = &dlg; AfxMessageBox("Anzeigen des Dialogs!"); int nResponse = dlg.DoModal();Die Funktion CGez015Dlg::OnInitDialog() wird garnicht erreicht in der ich meinen Dialog initialisiere. Hat jemand eine Idee woran das liegen könne!
Wenn es nicht allzu viel Aufwand ist, würde mich aber trotzdem noch interesieren, wie ich Ausgaben in ein Konsolenfenster realisieren könnte!
Danke
Walter
-
Ok, habe jetzt mit dem Remote-Debuger das Programm laufen lassen!
Es kommt folgende Fehlermeldung
CoCreateInstance of OLE control {648A5600-2C6E-101B-82B6-000000000014} failed.> Result code: 0x80040154
> Is the control is properly registered?
Warning: CreateDlgControls failed during dialog init.In der Registry steht unter der Nummer
Microsoft Communications Control, version 6.0
welches ich auch verwende!Nur weiss ich nicht, wie ich kontrollieren könnte, ob das control richtig registriert ist, und wenn nicht, wie ich es registriere?
Kann mir da jemand weiterhelfen?
Danke
Walter
-
Hast du denn in deinem Programm AfxOleInit aufgerufen?
-
Allso gut,
ich habe die Lösung gefunden!Von der Fehlermeldung mit dem Remote-Debugger habe ich folgendes gemacht:
Suchen des Schlüssels {648A5600-2C6E-101B-82B6-000000000014}, auf dem PC auf dem das Programm läuft, in der Registry.
Treffer bei
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID**{648A5600-2C6E-101B-82B6-000000000014}**]
@="Microsoft Communications Control, version 6.0"Der Unterpunkt sagt aus, welche Datei dafür notwendig ist
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{648A5600-2C6E-101B-82B6-000000000014}*InprocServer32*]
@="C:\\WINNT\\system32\[b]MSCOMM32.OCX[/b]"Somit war klar, welches OLE control nicht oder nicht richtig registriert ist!
Dann habe ich mscomm32.ocx auf dem anderen PC ins System32 - Verzeichnis kopiert und mit der Befehlszeile:
Regsvr32 c:\WINDOWS\System32\mscomm32.ocx
nochmal bzw. neu registriert.Schon ging die ganze Sache!
Dumm das das Programm nicht von sich aus eine Fehlermeldung bringt, dass es die
mscomm32.ocx nicht findet! Wäre ja gut, wenn so was ähnliches wie bei einer fehlenden DLL kommen würde, dann müsste man nicht mit dem Remote - Debugger arbeiten.Da ja, jetzt funktionierts ja!

Ade
Walter