Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Borland kannst du nicht herunterladen, weil Borland ein Unternehmen ist. Genausowenig kannst du Microsoft oder Karstadt herunterladen. Noch dazu würde dir das gar nichts bringen, weil die Entwicklungswerkzeuge inzwischen bei der Borland-Tochter CodeGear beheimatet sind. Aber auch CodeGear kannst du nicht herunterladen. Wenn du etwas anderes meinst, solltest du dich vielleicht etwas genauer ausdrücken.
  2. Ja. C++Builder
  3. Zulässig ist es sicher, nur funktionieren wird es nicht. strcat stößt sofort auf eine Terminierung, tut hier also gar nichts.
  4. "Er meckert" ist keine ausreichende Fehlerbeschreibung. Allerdings kann ich dir verraten, dass du in C immer "struct entfernung" schreiben musst, wenn du keinen typedef benutzt.
  5. pFrom und pTo brauchen eine doppelte Nullterminierung.
  6. Nein, das tust du nicht, und das ist auch das Problem. Du vergleichst nicht Zeitwerte, sondern Strings. Strings werden aber stumpf Zeichen für Zeichen verglichen. Dass da ein Datum drinsteckt, weiß der String ja nicht. "14.03.2008" ist größer als "01.04.2008", weil das erste Zeichen '1' größer als das Zeichen '0' ist. Aus demselben Grund ist "1" größer als "099999999" und "Januar" größer als "Februar". Wenn du eine zeitliche Sortierung willst, musst du Zeitobjekt vergleichen.
  7. Wie heißt der Pfad zum Projekt? Borland hat AFAIK ein paar Probleme mit Leer- oder Pluszeichen im Pfad.
  8. Du hast Recht. Ich habe das mit dem Verhalten von feof verwechselt. Bei Streams sollte man aber eigentlich immer den Stream selbst als Schleifenbedingung benutzen. Es gibt andere Dinge außer dem Dateiende, die einen Abbruch bewirken sollten. Wenn man nur auf EOF prüft, hat man dann schnell eine Endlosschleife. Also besser so: while (lesen >> text) { cout << text << endl; }[/code]
  9. Nein, das ist schon richtig so. eof liefert erst dann true, wenn ein Lesevorgang fehlgeschlagen ist.
  10. Und woher holst du dir das Threadhandle, auf das du warten willst, wenn du hier den Rückgabewert wegwirfst? Schau dir mal CEvent und CSingleLock an. Du "glaubst"? Warum beantwortest du nicht meine Frage nach dem Rückgabewert? Da ist schon der Ansatz schlecht. Auf Fenster darf nur aus dem Thread zugegriffen werden, der sie auch erzeugt hat. Deine Worker-Threads (denn solche startest du, wenn du AfxBeginThread so benutzt) haben von allen Fenstern die Finger zu lassen. Schick Nachrichten an den Fensterthread, und lass den auf die Fenster zugreifen. OnClose ist schon richtig. Das sollte auch vor jedem OnDestroy aufgerufen werden. Immerhin kannst du in OnClose das Schließen noch verhindern.
  11. Warum benutzt du nicht crosstool oder crosstool-NG?
  12. Wie startest du die Threads überhaupt? Üblicherweise setzt man ein Event, dass der Thread regelmäßig prüft. TerminateThread ist eine Notbremse, die wirklich nur in absoluten Ausnahmefällen zum Einsatz kommen sollte. Was heißt "wartet nicht"? Mit welchem Wert kommt WaitForSingleObject denn zurück? Das lässt eher vermuten, dass beim Speichern der Handles schon etwas schief geht. Auch hier wäre ein wenig Code hilfreich.
  13. Mein Fehler, die Präprozessorsymbole müssen in Resources -> General -> Preprocessor Definitions gesetzt werden. Der Ressourcencompiler hat seinen eigenen Satz an Symbolen. :floet:
  14. Du musst bei beiden Ressourcen eine Condition setzen (jeweils mit einem anderen Symbol), sonst wird in der Konfiguration Konfiguration Kunde_A das Programm mit beiden Ressourcen erstellt.
  15. In den Projekteinstellungen, unter C/C++ -> Preprocessor -> Preprocessor Definitions. Das ist eine mit Semikolon getrennte Liste von Symbolen. An diese Liste kannst du einfach pro Konfiguration einen anderen Namen anhängen. Genau. VC++ setzt das dann in #ifdef-Blöcke in der .rc-Datei um.
  16. Über die Condition-Eigenschaft kannst du jede Ressource an ein Präprozessorsymbol binden.
  17. 1. Finde heraus, welche Anweisung die Exception verursacht (z.B. indem du die WriteLine-Aufrufe auskommentierst). 2. Fang die Exception im Code und lass dir das Message-Property des Exception-Objekts ausgeben.
  18. Richtig. Deswegen war der Hinweis ja auch nur am Rande NULL ist in C++ ein int, was beim Überladen manchmal zu Überraschungen führen kann. Das soll im neuen Standard aber verbessert werden. Das wird jetzt aber komplett OT.
  19. Die einzigen Variablen, die man in C oder C++ wirklich "löschen" kann, sind Zeiger, denn nur dort gibt es einen Wert, der ausdrücklich dafür reserviert ist, dass der Zeiger auf "nichts" zeigt: Der Nullzeiger. Bei allen anderen Typen ist das ein zweifelhaftes Vorhaben. Ein int oder ein char hat immer irgendeinen Wert, er kann nicht leer oder gelöscht sein. Man kann natürlich willkürlich einen der möglichen Werte herauspicken und so tun, als wäre dies ein "Leer"-Wert. Man muss sich aber dann im Klaren sein, dass man damit auf einen möglichen gültigen Wert verzichtet. Wenn man eine Leer-Kennzeichnung braucht, würde ich im Zweifel immer dazu raten, diesen Status in einer zusätzlichen Bool-Variablen zu transportieren, und nicht willkürlich einen gültigen Wert dazu missbrauchen. Hinweis am Rande: Das gilt nur für C, nicht für C++.
  20. Richtig. Du kannst einer Funktion nichts zuweisen. Allenfalls kannst du sie aufrufen. Deine Funktion hat aber keine Parameter.
  21. "Geht nicht" ist keine ausreichende Fehlerbeschreibung. Anzahl ist private, ist dir klar, was das bedeutet?
  22. Anzahl ist ein Attribut der Klassen TStreichholz. Du brauchst also ein Streichholz-Objekt, um auf dessen Anzahl-Attribut zugreifen zu können. Du musst also Streichholz.Anzahl schreiben. Deine Klasse ist aber vom Designstandpunkt eher unglücklich. Eigentlich ist die Klasse nur ein Hilfscontainer für eine Variable und ein paar Methoden, und repräsentiert kein wirkliches Objekt. Ein Streichholz stellt die Klasse (trotz ihres Namens) sicher nicht dar, denn ein einzelnes Streichholz hätte kein Anzahl-Attribut.
  23. Wenn die relative Zeitzone zwischen Client und Server ignoriert werden soll, würde ich einfach Tag, Monat und Jahr als Integer an den Server übergeben und dort erst ein Date-Objekt daraus konstruieren.
  24. Das bedeutet, dass irgendwo bei einer Fließkommaberechnung (also mit float, double oder long double) das Ergebnis einer Berechnung so groß war, dass es nicht mehr in den entsprechenden Datentyp passte. Vermutlich liegt ein Logikfehler in deinem Programm vor. Ohne Code kann man dazu kaum mehr sagen.
  25. Klotzkopp

    hoi hoi

    Also der Kommandozeilencompiler? Ok. Wenn du jetzt noch meine andere Frage beantwortest, können wir dir bei deinem eigentlichen Problem helfen

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...