Alle Beiträge von Klotzkopp
-
BCB5: Was stimmt nicht an diesem Programm?
Wenigstens sind wir uns einig
-
BCB5: Was stimmt nicht an diesem Programm?
Das reserviert Dir genau ein Byte, und zwar Zeile[0]. Ist kein Fehler, aber char Tabulator = '\t'; wäre besser, denn dann sparst Du dir auch die Dereferenzierung. Du schreibst und liest hier in Speicher herum, den Du nicht reserviert hast. Nur Zeile[0] ist erlaubt (siehe oben). Mit hoher Wahrscheinlichkeit überschreibst Du andere Variablen.
-
werte aus einer klasse in eine andere?
Du hast auf jeden Fall vergessen, den Parametern der Funktionen einen Datentyp zu verpassen. Wenn es sicht um einen int handelt, muss das so aussehen: CLine::CLine(CPoint ptFrom, CPoint ptTo, COLORREF crColor, int m_penwidth) Außerdem solltest Du den Parametern nicht den Präfix m_ geben, um Verwechslungen mit Membervariablen zu vermeiden.
-
Zeiger (Aufagabe)
@Guybrush: Bei beiden Vorschlägen von Dir würde ich eher Referenzen verwenden. @Woodstock: Ich würde auch zur verketteten Liste raten.
-
Standart Wert für Objekt definieren
Du kannst für Deine Klasse einen Cast-Operator definieren: operator char const *() const { return var; }[/CODE] Dann wird, wann immer Du eine Instanz von Test an Stelle eines char const* oder char const * const angibst, var verwendet. Damit funktioniert z.B.: [CODE]printf( t ) Folgendes wird nicht funktionieren, weil die nachfolgenden Parameter bei printf keine Typprüfung haben: printf( "%s", t ); Die Möglichkeiten wären hier: printf("%s", static_cast<char const *>( t ) ); printf("%s", (char const *)t );[/code]
-
Abfragen von einer char variable!
Was Du hier machst, ist ein Adressvergleich. Die Adresse des Stringliterals "j" vergleichst Du mit der Adresse des ersten Elements von a. <Gebetsmühle> char-Strings vergleicht man mit strcmp. Achtung, strcmp gibt bei Übereinstimmung Null zurück. </Gebetsmühle> Falls Du wirklich nur ein einziges Zeichen vergleichen willst, solltest Du HELLmuts Vorschlag verwenden.
-
wie ging das doch gleich mit dem berechnen von IP, Broadcast, Subnet...?
Networking Technologies, oberstes Thema: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=34655&werbeid=17
-
Adhoc- WLAN und Bluetooth das Gleiche ??
Bitte die Boardregeln, Punkt 9 beachten. Wenn Du glaubst, dass Dein Thema nochmal ins Gedächtnis der Leser gerufen werden muss, wende Dich bitte an einen der zuständigen Moderatoren.
-
Einzelne Zeichen in txt-Datei ersätzen
Erwischt. Eigentlich schon. Ein application.close() an geeigneter Stelle wäre wohl ganz angebracht. Kann sein, dass Windows da toleranter ist, aber abstürzen sollte das Programm trotzdem nicht. An welcher Stelle passiert's denn?
-
Windows static control
Nein. Lokale Variablen werden zerstört, sobald sie ihren Gültigkeitsbereich verlassen, in Deinem Fall also spätestens beim Verlassen der Methode, in der Du die Variable angelegt hast. Im Destruktor von CStatic wird DestroyWindow aufgerufen, damit ist das Control wieder weg. Mach eine Membervariable der Dialogklasse draus, oder hole den Speicher dynamisch. Dann sollte sich aber die Dialogklasse den Zeiger merken, um ihn am Ende wieder freizugeben.
-
Thread erstellen und zerstören
Man kann TerminateThread verwenden, um einen Thread zu beenden. Allerdings ist das eine gefährliche Sache, weil z.B. auf dem Heap allokierter Speicher, CritSecs und geladene DLLs nicht freigegeben werden. Du solltest also zuerst den Thread "sanft" beenden, z.B. indem Du ein Flag setzt, das der Thread regelmäßig prüft, und abwarten, ob er sich selbst beendet. Erst wenn das nicht klappt, solltest Du TerminateThread in Erwägung ziehen. Das Ganze könnte etwa so aussehen: DWORD dwThreadId; HANDLE hThread = CreateThread( NULL, 0, ThreadProc, (void*) pParam, 0, &dwThreadId ); // ...irgendwas tun // Jetzt soll der Thread beendet werden, Flag setzen fStopThread = TRUE; // Dem Thread Zeit geben, sich zu beenden.Hier: 5 Sekunden if( WAIT_OBJECT_0 != WaitForSingleObject( hThread, 5000 ) ) { // Thread hat nicht terminiert, dann auf die harte Tour TerminateThread( hThread, 0 ); } CloseHandle( hThread ); [/CODE]
-
Einzelne Zeichen in txt-Datei ersätzen
@gajUli: Welchen Compiler verwendest Du? @LLpresident: Das zeichenweise Einlesen sollte ja klar sein. Wenn ich ein Tab finde, setzt ich den Dateizeiger um eins zurück (Offset -1 von der aktuellen Position, deswegen cur für current). Damit steht der Dateizeiger wieder vor dem Tabzeichen. Dann schreibe ich das Dollarzeichen in die Datei. Warum der zweite pubseekoff-Aufruf notwendig ist, weiß ich auch nicht, denn der macht im Prinzip nichts. Er setzt den Dateizeiger auf Offset 0 von der aktuellen Position, lässt ihn also auf gut Deutsch da, wo er ist.
-
Ado
Der Aufruf von DeleteContents aus OnNewDocument heraus ist schon in Ordnung. Das ist die Standardimplementierung von OnNewDocument. Aber weil DeleteContents u.a. auch zur Initialisierung eines neuen Dokuments verwendet wird, darf dieser Code da nicht rein. @007ski: Setze bitte mal den Code, der jetzt in DeleteContents steht, in die OnCloseDocument-Methode Deiner Dokumentklasse. Falls Du keine hast, kannst Du sie mit dem Klassenassistenten erstellen.
-
sql abfrage mit einem string?
Würde mich wundern, wenn das so wäre. Ist das jetzt ein neues Problem? Hat sich das alte erledigt?
-
Ado
Hast Du eine dieser drei Methoden überschrieben? - IsModified - DeleteContents - SetModifiedFlag Wie sieht der Callstack zum Zeitpunkt der Ausnahme aus? Hast Du die MFC-Quellcodes installiert? Wenn ja, setze mal einen Breakpoint auf die Zeile, starte den Debugger und spring rein (F11). Da drin kannst Du dann mit F10 die einzelnen Schritte durchgehen, damit man genauer eingrenzen kann, wo der Fehler auftritt.
-
HBitmap
Wäre ganz gut Du brauchst aber keine HINSTANCE-Variable. Schreib statt hInst einfach AfxGetResourceHandle() in den LoadBitmap-Aufruf.
-
Windows static control
Wenn Du als Window-Style immer noch nur SS_BLACKFRAME angegeben hast, dann kannst Du nichts sehen. WS_VISIBLE sollte schon sein. Für ein Bitmap-Static-Control mit Rahmen empfehle ich: WS_CHILD | WS_VISIBLE | SS_BITMAP | WS_BORDER. Ist Deine CStatic-Instanz ein Member der Dialogklasse, oder eine lokale Variable in einer Methode?
-
Einen Programm aus meine Anwendung starten
ShellExecute kann genau das. Du kannst entweder auf dem Board danach suchen oder mal hier reinschauen.
-
Windows Ontop
SetWindowPos gibt es auch in den MFC: BOOL CWnd::SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags ); Wenn das Fenster auch dann im Vordergrund bleiben soll, wenn es nicht aktiv ist (wie z.B. der TaskManager), kannst Du das so machen: SetWindowPos( &wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW );
-
HBitmap
Ersetze "IDB_BITMAP2" mal durch MAKEINTRESOURCE(IDB_BITMAP2) Ach ja, UpdateData kannst Du Dir bei Steuerelement-Variablen sparen.
-
Einzelne Zeichen in txt-Datei ersätzen
Das Hauptproblem an Deinem Code ist, dass Du für jedes Zeichen in der Datei einen neue Ausgabedatei aufmachst, die, weil sie denselben Namen trägt, Deine Eingabedatei überschreibt. Du brauchst nicht ein ifstream und ein ofstream, sondern ein fstream, das beides gleichzeitig kann. Ich hab noch nicht wirklich viel mit Streams gemacht, aber ich habe ein wenig rumprobiert, und das hier scheint zu funktionieren: #include <fstream> #include <conio.h> using namespace std; //------------------------------------------------------- int main() { char Zeichen; char Tab = '\t'; char Test = '$'; fstream application("application.txt", ios::in | ios::out ); while(!application.eof()) { application.get( Zeichen ); if(Zeichen == Tab) { application.rdbuf()->pubseekoff( -1, fstream::cur ); application.put( Test ); application.rdbuf()->pubseekoff( 0, fstream::cur ); } } getch(); return 0; }[/CODE] Jemand der mehr Ahnung von Streams hat, möge mir bitte sagen, warum der zweite pubseekoff-Aufruf notwendig ist. Ohne den wächst die Datei [b]sehr[/b] schnell.
-
sql abfrage mit einem string?
Ich nehme mal an, MYSQL_ROW ist ein #define oder typedef. Was für eins?
-
Ado
Erdstrahlen. Oder Polarlichter. Mal im Ernst, wie soll irgendjemand alle Codeänderungen, die Du gemacht hast, nachvollziehen, und dann diese Frage beantworten, wenn Du nicht einmal sagst, was Du wo auskommentiert hast? Und was die Ausnahme angeht: Starte das Programm im Debugger, damit Du uns sagen kannst, an welche Stelle im Code dieser Fehler auftritt, am besten mit Callstack. Nur als Info: #pragma warning (disable: 4146) macht nichts weiter, als die Warnung abzuschalten. Du behandelst die Symptome, nicht die Krankheit. Es gibt aber Fälle, wo man das einfach machen muss. Ich bin da bei ADO nicht ganz auf dem laufenden. Kannst Du vielleicht Dein ganzes Projekt irgendwo hochladen, damit wir uns mal den Quellcode ansehen können? Natürlich nur, wenn Du das willst und das Copyright hast.
-
Unterschied zwischen c++ und c# ??
@se.rie.: Es ging dem Fragesteller um Unterschiede zwischen C++ und C#. Mag sein, dass Du keinen Grund siehst, umzusteigen oder .net einzusetzen. Mag auch sein, dass PHP sich bewährt hat. Aber das ist hier nicht das Thema. Also bitte bleibt dabei, ok?
-
ShowHTMLDialog
Hier gibt's doch ein schickes Sample. Scheint mir auf den ersten Blick so, als ob das, was im Scriptcode an window.returnValue übergeben wird, im letzten Parameter von ShowHTMLDialog auftaucht.