Alle Beiträge von Klotzkopp
-
Visual C++ Speichern
Das ist schade. Wie wäre es, wenn du erklärst, warum dir das nicht weiterhilft? Dann brauchen die Helfer auch nicht länger im Nebel herumzustochern. Bitte beschreibe konkret, wo die Probleme liegen. Weißt du nicht, wie du an den HTML-Code rankommst? Weißt du nicht, wie du die Daten aus HTML rausholst? Weißt du nicht, wie du eine CSV-Datei erstellst? Wo genau klemmt's?
-
Hauptprogramm vor Funktionen?
Fehler sehe ich nicht mehr. Allerdings hätte ich noch ein paar Anmerkungen: Deine Einrückung ist gewöhnungsbedürftig. IMHO tust du dir selbst einen Gefallen, wenn du dir schnell angewöhnst, etwas sorgfältiger zu arbeiten, bevor du bei größeren Programmen den Überblick verlierst. Deine Funktion istprim ist noch unnötig kompliziert. Du musst die Teiler nicht zählen, um über eine Zahl sagen zu können, ob sie eine Primzahl ist. Wenn du zwischen 2 und kandidat-1 einen Teiler findest, kannst du gleich mit return false; abbrechen. Wenn die Schleife durchläuft, machst du einfach return true;. Code wie dieser hier: teiler = teiler + 1;erweckt bei mir immer den Eindruck eines Basic-Umsteigers. In C und C++ kann man das kürzer als ++teiler schreiben. Wenn es um mehr als 1 geht, nimmt man +=.
-
Hauptprogramm vor Funktionen?
"Laufen" würde ich das nicht nennen. 9 und 15 sind jedenfalls keine Primzahlen. Dein Programm gibt alle ungeraden Zahlen aus. Das liegt daran, dass du eigentlich nur die Teilbarkeit durch zwei prüfst. Danach beendest du deine Teilersuchschleife in jedem Fall mit einer return-Anweisung.
-
Sofort hach DoModal() Funktionen aufrufen...
Danke für die Links, die sind sehr interessant. Ich halte deine Einwände für grundsätzlich richtig. Allerdings darf man hier nicht außer acht lassen, dass es um MFC und vor allem um Anfänger geht. Benutzerdefinierte Nachricht bedeutet, dass man selbst Hand an die MFC-MessageMap legen muss. Allein dabei kann viel schiefgehen. Oft genug habe ich schon gesehen, dass dabei die falsche Map benutzt wurde. Praktisch alles, was man dabei falsch machen kann, führt zu logischen Fehlern, die man (über ein Forum) nur schwer finden kann. Die Vorgehensweisen, die auf den von dir verlinkten Seiten vorgeschlagen werden, haben sogar noch mehr mögliche Fehlerquellen, wenn sie denn überhaupt auf die MFC anwendbar sind: Ich denke, so etwas kann man Anfängern - und mit solchen haben wir es hier im Forum nun mal meistens zu tun - nicht zumuten.
-
Sofort hach DoModal() Funktionen aufrufen...
Das sehe ich nicht so. Ich stimme dir zu, dass das kein "Dialog" im engeren Sinne mehr ist. Andererseits hat ein modaler Dialog den großen Vorteil, dass er, so lange er läuft, jegliche Interaktion mit dem Elternfenster verhindert. Damit hat man klare Schnittstellen, gerade für einen Vorgang, den der Benutzer nicht beeinflussen kann, sobald er gestartet ist. Bei einem normalen Fenster müsste man mehr oder weniger umständlich dafür sorgen, dass der Benutzer nicht dazwischenfunkt.
-
Exelsheets einlesen in Konsolenprogramm
Wenn du ODBC benutzt, brauchst du die Automatisierungsschnittstelle nicht. Startpunkt ist immer _Application, wie auch in dem Beispielcode im verlinkten Thread.
-
ToolTip/Statuszeilentext für Toolbar ändern MFC/6.0
Sind die einzelnen Buttons Kindfenster der Toolbar? Dann könntest du die einfach durchenumerieren.
-
Sofort hach DoModal() Funktionen aufrufen...
Nicht so, dass es ein Mensch bemerken würde. CWnd::SetTimer, CWnd::KillTimer. Das sind aber schon Dinge, die nicht so ohne weiteres ohne eine laufende Nachrichtenschleife funktionieren. Du solltest so etwas definitiv nicht in OnPaint machen. Das liegt daran, dass Assertions im Release-Modus vom Präprozessor entfernt werden. Der Fehler ist immer noch da, du wirst nur nicht mehr darauf hingewiesen. Was heißt "schmiert ab"? Startest du im Debugger? Wie sieht der Callstack aus?
-
Exelsheets einlesen in Konsolenprogramm
In dem verlinkten Thread stand auch nichts vom Projektmenü. Da stand: ClassWizard->Automation-Add Class->From a type library Auf Deutsch etwa: Klassenassistent -> Automatisierung-Klasse hinzufügen -> Aus einer Typbibliothek. Eher zum Weinen Stellst du das nur zur Unterhalten hier rein, oder möchtest du Kommentare dazu?
-
C++ Prüfung Programmierung
Das soll vermutlich "Laufzeitfehler" heißen... Genial!
-
MFC - Windows Version ?
Das steht in der MSDN Library, in der Beschreibung der OSVERSIONINFO-Struktur. Es ist übrigens nicht sehr höflich, seine Frage wieder zu löschen, wenn man selbst eine Antwort gefunden hat. Damit bringt man den nächsten, der das Problem hat, um die Möglichkeit einer schnellen Lösung
-
Sofort hach DoModal() Funktionen aufrufen...
Das Problem liegt vermutlich darin, dass du das ganze in OnPaint machst. Üblicherweise benutzt man für so etwas einen Timer mit kurzem Intervall, der in OnInitDialog gestartet wird, und sofort, nachdem er zum ersten Mal ausgelöst hat, wieder zerstört wird. Du musst dir allerdings im Klaren sein, dass du das Fenster hier nur begrenzt beeinflussen kannst, weil die Nachrichtenschleife steht, solange deine Funktion läuft. Das Problem ließe sich nur mit einem weiteren Thread lösen.
-
MFC Grid
Und passiert in OnEditCell etwas, was du selbst machen könntest? Wenn gar nichts hilft: Ableiten und eine public-Methode schreiben, die OnEditCell aufruft (blutiger Hack ).
-
Exelsheets einlesen in Konsolenprogramm
Könnte man. Das VBA-Programm liest allerdings nicht aus, sondern benutzt nur die interne Speicherfunktion von Excel. Wenn du die Daten anders aufbereiten oder an ein anderes Programm weitergeben willst, hilft dir das nicht. Du kannst ja mal hier reinschauen (nicht wundern, wenn da eine Antwort ohne Frage steht ) http://forum.fachinformatiker.de/showthread.php?t=20841 Das könnte auch noch helfen: http://forum.fachinformatiker.de/showthread.php?t=70912
-
Exelsheets einlesen in Konsolenprogramm
Ich wiederhole mich auch gern nochmal: Soll das eine Übungsaufgabe sein? Falls ja, gibt es noch weitere Vorgaben? Darfst du die Automatisierungsschnittstelle benutzen? Der Ansatz hängt von der Antwort auf diese Fragen ab.
-
MFC Grid
Ich meine, du sollst im Quellcode des Steuerelements nachsehen, was da bei einem Doppelklick passiert.
-
Exelsheets einlesen in Konsolenprogramm
Soll das eine Übungsaufgabe sein? Excel kann so etwas nämlich auch ganz gut selbst. Falls ja, gibt es noch weitere Vorgaben? Darfst du die Automatisierungsschnittstelle benutzen?
-
Schwiegermutter
Ich hab selbst keine. Aber ich denke, meine Frau kommt mit ihrer ganz gut klar.
-
Excel Arbeitsmappe öffnen
ShellExecute mit "open" sollte auch mit Borland funktionieren.
-
MFC Grid
Ich kenne das Steuerelement nicht. Aber warum schaust du nicht im Quellcode nach, was bei einem Doppelklick passiert? Möglichweise kannst du das gleiche machen.
-
COM Server ansprechen
Nein. Wenn du eine (generierte) Headerdatei hast, musst du die mit #include einbinden. Eine Typbibliothek (.tlb) bindest du mit #import ein. #include <windows.h> #include <atlbase.h> #import "comserver.tlb" // ODER #include "comserver.h" int main() { CoInitialize(0); { CComPtr<Icomserver> p; HRESULT hr = p.CoCreateInstance(__uuidof(comserver)); if(SUCCEEDED(hr)) { p->Methoder(1, 42.0); } } } [/code]
-
COM Server ansprechen
Eine Möglichkeit ist, mit der #import-Direktive die Typbibliothek zu importieren und dann mit CoCreateInstance eine Instanz zu erzeugen. Die ATL bietet dazu ein paar schöne Hilfsklassen, wie z.B. Smartpointer.
-
Problem mit destructor
Das liegt daran, dass std::map::iterator auf ein std::pair verweist. Mit it->first kommst du an den Schlüssel (long), mit it->second an den Wert (CKanal*).
-
Problem mit destructor
Passt irgendwie nicht zusammen...
-
Strings aus einer verketteten Liste löschen
Mal ein Beispiel: int a; a = 5; a = 2;[/code] Wo ist die 5? Richtig, die ist weg, überschrieben durch die 2. Das gleiche machst du da. Du überschreibst den Zeiger auf den Speicherbereich, den du mit new geholt hast, mit der Adresse von data. Gleiches Verhalten wie vorher, aber jetzt noch ein zusätzliches Speicherleck. Stichwort: strcpy. Übrigens solltest du new und malloc nicht mischen.