Probleme mit Convert
-
Ja, ich bin leider Anfänger u. lerne noch.
Wo deklariere ich die Memberfunktion in der doc.h ?
Ich habe es unter Public oder Operationen versucht.
Die gleiche Fehlermeldung erscheint beim Compilieren.Ich danke Euch!
-
Ralf2 schrieb:
Ich habe es unter Public oder Operationen versucht.
Die gleiche Fehlermeldung erscheint beim Compilieren.Wie hast du es denn versucht? Wie genau lautet die Fehlermeldung?
-
Ralf2 schrieb:
Ja, ich bin leider Anfänger u. lerne noch.
Wo deklariere ich die Memberfunktion in der doc.h ?Minimalversion:
class CW32dDoc : public CDoc { // oder so ähnlich müßte es dastehen //.. void convert(int,int); //.. }
Ob du es public, protected oder private setzen solltest, hängt ganz davon ab, wer diese Methode verwenden will.
PS: Achja, im Netz gibt es genug Tutorials zum Umgang mit C++ - und Member deklarieren gehört zu den Grundlagen
-
Das Problem habe ich beseitigt.
Fehlermeldungen gibt es keine mehr, aber das Programm Crimson.exe wird nicht gestartet. D.h. mein Programm zeigt keine Veränderungen.
Muß ich den Code in die View-Klasse statt in die Doc-Klasse schreiben?Könnt Ihr mir nochmals helfen?
-
Kannst du überprüfen, ob die Methode überhaupt aufgerufen wird? (sprich: Schreib ein "TRACE("in convert()\n") an den Anfang der Funktion und schau in der Ausgabe des Debuggers nach, ob das ausgegeben wird.)
-
Ich habe vor der Funktion einen Haltepunkt gesetzt.
Der Debugger berücksicht diese scheinbar nicht, weil der Haltepunkt übergangen wird.
-
In dem Fall gehe ich eher davon aus, daß convert() überhaupt nicht aufgerufen wird. Schau mal in die Funktion, die das verwenden soll/will, was genau dort drin steht.
(nur weil eine Funktion existiert, wird sie noch lange nicht verwendet - schließlich kann dein Compiler nicht hellsehen bzw. erraten, wo sie benötigt wird ;))
-
Ich weiß leider nicht so genau was Du damit meinst.
Diese Funktion soll aufgerufen werden, nach dem die Textdatei in einen String überführt wurde.
Daher habe ich die Funktion convert direkt da drunter aufgeführt.
Hier nochmal der Code:BOOL CW32dDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; //§§§ Begin GoInput §§§ // Neues Dokument einbinden CString str1,str2; #include "NeuesDokument.inc" ((CEditView*)m_viewList.GetHead())->SetWindowText(str1+str2); return TRUE; } void CW32dDoc::convert(int yresol, int xresol) //Starten des Crimson Editors { char *battmp = "c:\\Dokumente und Einstellungen\\Dirk\\Eigene Dateien\\Visual Studio Projects\\w32shell_orig\\w32d\\NeuesDokument.inc"; char *crms = "c:\\Programme\\Crimson Editor\\cedt.exe"; // Hier wird die Textdatei ffmpegtmp.bat erzeugt. // Hier wird der Crimson Editor mit der o.g. Textdatei geoeffnet // Das aufrufende Programm wartet, bis der Editor beendet wurde. _spawnl(_P_WAIT,crms,"cedt",battmp,NULL); // Hier geht es im aufrufenden Prozess weiter } //§§§ End GoInput §§§ ///////////////////////////////////////////////////////////////////////////// // CW32dDoc Serialisierung
-
ähm das ist nicht böse gemeint, aber besorg dir erstmal ein Grundlagentutorial. Eine Methode implementieren ist das eine. Sie aufzurufen ist das andere. Dort wo die Methode aufgerufen werden soll, musst du das natürlich auch tun. Nur weil sie im Quelltext untereinander stehen, werden sie deshalb nicht alle einfach der Reihe nach benutzt.
-
CStoll schrieb:
(nur weil eine Funktion existiert, wird sie noch lange nicht verwendet - schließlich kann dein Compiler nicht hellsehen bzw. erraten, wo sie benötigt wird ;))
*tztz* Du solltest mal lesen, was ich geschrieben habe - irgendwo in deinem Programm benötigst du einen Aufruf der Art "convert(x,y);" mit dem du diese Funktion in Gang setzt - andernfalls lungert die nur im Speicher rum und wartet (vergeblich) darauf, etwas zu tun zu bekommen.