Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Standard-C++ kennt keine graphischen Benutzeroberflächen. Daraus, dass du eine "exe" erstellen willst, schließe ich, dass du unter Windows programmierst. Stimmt das? Womit (IDE, GUI-Bibliothek) entwickelst du? P.S.: Veschoben: C++: Compiler, IDEs, APIs
  2. Hallo stronzo, und Willkommen auf dem Board. Ein Bitte: Gewöhn dir an, aussagekräftige Threadtitel zu wählen. Den hier hab ich für dich geändert.
  3. Klotzkopp

    klassen

    Du solltest, wenn du wirklich mit deinem Programm weiterarbeiten willst, zuerst ein paar grundlegende Probleme beheben. Das hat nichts mit OOP zu tun. #include<iostream.h> Das ist veraltet. Nach dem aktuellen Standard heißt der Header iostream, ohne h. #include<stdlib.h> Gleiches gilt hier. Der Header heißt cstdlib. Die Funktionen und Objekte liegen aber im namespace std, d.h. du musst entweder vor alle verwendeten Funktionen std:: schreiben, oder, wie in carstenjs Beispiel: using namespace std; berechnung(int zahlen[20], int i=0) Die Methode ist falsch benannt. Sie berechnet nichts, sondern sie liest ein. Du könntest sie Eingabe nennen. Zudem ist nicht klar, warum du das Array zahlen und den int i als Parameter übergibst. Wenn die Funktion die Werte einlesen soll, brauchst du sie nicht zu übergeben. Wozu übergibst du i? Wozu dient der Defaultwert? while(zahlen!=0) Was ist, wenn schon vorher eine Null in zahlen steht? i++; cin >> zahlen; Was ist, wenn der Benutzer mehr als 20 Zahlen eingibt? }; Das Semikolon kann weg. przahlen[20] = zahlen[20]; zahlen ist ein Array mit 20 Elementen. Daher gehen die gültigen Indizes von 0 bis 19. przahlen hat gar keine Größenangabe. Du greifst also mit einem ungültigen Index auf die Arrays zu. Ich vermute, du willst das ganze Array mit dieser Anweisung kopieren. Das geht aber nicht ohne eine Schleife. void summe() Auch diese Methode ist schlecht benannt. Bei diesem Namen würde ich erwarten, dass die Methode die Summe zurückgibt. Deine Methode gibt nichts zurück, sondern sie berechnet die Summe und gibt sie aus. Die Berechnung selbst ist zumindest korrekt (wenn in przahlen richtige Werte stehen würden). int przahlen[]; Wenn du vermutest, dass du damit ein Array mit flexibler Größenanpassung deklarierst, muss ich dich enttäuschen. Zusammenfassend: Du hast da ein paar echte dicke Klöpse in deinem Code, die mich zweifeln lassen, dass du dich mit den Grundlagen auskennst. Vielleicht solltest du zunächst mal diese Defizite aufarbeiten.
  4. Solange du nur lesen willst, ist das in Ordnung. Schreibzugriffe sind damit nicht möglich.
  5. Die MSDN Library sagt zu CPaintDC: Das ganze muss also in OnPaint stehen. Was ist IDD_DIALOG? Und nochmal: Prüf die Rückgabewerte der Funktionen! Was liefern GetDlgItem, LoadBitmap und BitBlt zurück? Das sind die absoluten Grundlagen der Fehlersuche.
  6. Wenn die Funktion ein Zeichen findet, das sie nicht mehr der Zahl zuordnen kann (z.B. ein Buchstabe außer e), dann setzt sie den Zeiger, dessen Adresse du als zweiten Parameter übergibst, auf dieses Zeichen. Vermutlich brauchst du das gar nicht, aber laut MSDN Library darf man da keinen Nullzeiger angeben.
  7. Wo (in welcher Funktion) steht dieser Code? Was liefern LoadBitmap und BitBlt zurück?
  8. Ganz ruhig, kein Grund für multiple Satzzeichen Versuch bitte mal das hier: CString str; double y; m_Edit.GetWindowText(str); wchar_t* stop; y = wcstod(str, &stop);[/CODE]
  9. Leider nicht. Generell ist Datenbankzugriff mit C und C++ ziemlich schmerzhaft. Dein Anspruch, die Hintergründe zu verstehen, in allen Ehren, aber du tust dir damit keinen Gefallen. Die Innereien der MFC-ODBC-Implementierung sind sehr alt und komplex. Meine Empfehlung: Begnüge dich damit, dass das, was der Wizard ausspuckt, funktioniert. Oder, wenn du dich unbedingt in die Eingeweide einer DB-API stürzen willst, nimm OLEDB.
  10. Wie fit bist du in C++ bzw. MFC? ODBC ohne den Wizard ist nicht so einfach.
  11. Ist die Tabelle die einzige mit Timestamp?
  12. Snapshot war Blödsinn, was passiert bei dynamic? Benutzt du einen DSN? Falls ja, hast du die Eigenschaften geprüft? Nicht, dass da noch irgendwo ein Schreibschutz eingetragen ist. Hat die Tabelle - keinen Primärschlüssel - ein Unique restraint - einen Unique Index - eine Timestamp-Spalte? Hast du alle Service Packs für MSVC installiert?
  13. Na dann: Verschoben nach Webdesign.
  14. Brauchst du denn einen Dynaset? Tritt das Problem auch mit einem Snapshot auf?
  15. Du solltest sowieso keine DLL ohne die dazugehörige Dokumentation benutzen. Bei C-Funktionen hast du tatsächlich keine Möglichkeit, die Anzahl und Typen der Parameter zu ermitteln. Für C++ ist das prinzipiell möglich. Die Compiler arbeiten die Parameter in den Namen der Funktion ein (Name Decoration). Das sieht dann z.B. so aus: ?AddFolder@CCollection@@QAEPAVCFolder@@PBDKPAKG@Z Das kann man prinzipiell entschlüsseln. Leider kocht da jeder Compilerhersteller sein eigenes Süppchen.
  16. Das ist eine denkbar schlechte Fehlerbeschreibung. Du solltest immer genau schreiben, was nicht funktioniert. Wenn du eine Fehlermeldung bekommst, solltest du die vollständig angeben. Das erleichtert die Diagnose ungemein. Dem Arzt sagst du doch auch nicht nur, dass es weh tut, sondern auch wo Meine Vermutung: CString basiert auf TCHAR, das wiederum ist unter Windows CE immer WCHAR, also sollte es mit _wtof funktionieren.
  17. Entweder sstr.precision(15); odersstr << setprecision(15); Jeweils, bevor du den double reinschreibst. Letzteres benötigt <iomanip>.
  18. Bogen in die eine Hand, Pfeile in die andere. Sonst kannst du nur winken
  19. C++ unterscheidet zwischen Groß- und Kleinschreibung. Die Methode heißt DoModal, mit großem D am Anfang.
  20. Dazu noch etwas: Du hast bisher nur einen (nicht konstanten) Zeiger auf konstante Zeichen. Damit lässt sich der Zeiger selbst immer noch verändern. Wenn der Zeiger selbst auch konstant sein soll, brauchst du const char* [b]const[/b] m_text;
  21. Dir ist aber klar, dass es dann möglicherweise zu spät sein kann, wenn du die Konstante erst dann initialisierst, wenn eine Instanz angelegt wird? Die Initialisierungsliste ist nur für Instanzvariablen (also nicht static) sinnvoll. Du würdest die Variable ja bei jeder Instanzierung von CTest überschreiben. Du brauchst einfach nur eine Definition der statischen Variablen. Bisher hast du nur eine Deklaration. Das ist auch der Grund, warum sich der Linker beschwert. Definier also in einer cpp-Datei, außerhalb von allen Funktionen, deine Variable. Dabei kannst du sie dann auch gleich initialisieren: const char* CTest::m_text(new char[100]); Warum eigentlich new? Wenn die Größe feststeht, könntest du doch auch ein statisches Array benutzen, oder?
  22. Konstante Member kann man nur in der Initalisierungsliste des Konstruktors initialisieren. Aber ich gebe Newlukai recht: Warum static?
  23. Hast du den Thread gelesen, auf den Der Kleine verlinkt hat?
  24. Ich weiß das nicht auswendig. Die Formel kannst du herleiten oder im Web suchen oder von einem Matheprogramm lösen lassen. Unter "Schnittpunkt zweier Kreise" sollte sich mit der Google-Newsgroupsuche etwas finden lassen.
  25. Du hast zwei Gleichungen mit zwei Unbekannten. Das solltest du jetzt aber selbst hinbekommen

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...