Assertion failed bei CStdioFile::ReadString

kscha

Mitglied
Hallo Leute !

Meine dialogbasierte MFC-Anwendung macht mir mal wieder Sorgen :mad: :

Auf dem Rechner in meiner Firma (wo ich das Ding entwickelt habe) läuft das Programm einwandfrei (Laden, Speichern,...) ! Jetzt habe ich es aber mittels USB-Stick mit nach hause genommen (den kompletten Arbeitsbereich) und wollte es auf meinem Laptop testen..... Fehlanzeige !
Beim "Öffnen" einer Datei bringt er mir die Fehlermeldung 'Assertion failed' in der Datei filetxt.cpp, Zeile 176. Dabei handelt es sich um ReadString-Assertions; genauer gesagt bei "ASSERT (AfxIsValidAdress(lpsz, nMax)) ".
Ich kann mir jetzt nicht erklären, warum eine eingelesene Zeile eine ungültige Adresse haben sollte, wenn das ganze doch auf einem anderen Rechner funktioniert :confused:
Vielleicht noch soviel: ich binde die MFC-Library beim übersetzen statisch ein. Da dürfte er doch auch nicht irgendwelche Dateien vermissen, oder ?!

Vielleicht kann mir ja jemand weiterhelfen, ich würde mich freuen :)

Viele Grüße,

Kai
 

Kachelator

Peter Jerz
Hast du auf deinem Rechner auch die Entwicklungsumgebung installiert? Es könnte nämlich auch an den C-Runtime-Libs liegen (msvcrt .dll oder so, es gibt da mehrere). Du könntest du mal ausprobieren, was passiert, wenn du die entsprechenden Dateien in das Verzeichnis deiner Anwendung auf deinem Privatrechner legst. Vielleicht behebt das das Problem.

Es würde mich auch interessieren, ob du in Büro und zu Hause gleiche WIndowsversionen verwendest.
 

kscha

Mitglied
Schade, daß ich meinen Laptop nicht dabei habe (bin grad in der Firma)... dann könnte ich nämlich gleich schon mal rumprobieren :(

Zu Deinen Fragen / Anregungen:

• Ja, ich habe die Entwicklungsumgebung auch auf dem Privatrechner (VC++ 6.0)

...könntest du mal ausprobieren, was passiert, wenn du die entsprechenden Dateien in das Verzeichnis deiner Anwendung auf deinem Privatrechner legst.

• Welche Dateien meinst Du genau ? "msvcrt.dll" ? Wenn ja, woher weiß ich, welche ich alle rüberkopieren soll ?

• Im Büro: "Windows 2000 Professionell"
• Zuhause: "Windows ME"

• Es kommt übrigens auch die gleiche Fehlermeldung, wenn ich's zuhause auf dem Laptop compiliere !

• Kann das was damit zu tun haben, ob ich's als 'Release' oder als 'Debug' compiliere ? Den Unterschied habe ich übrigens noch gar nicht begriffen (hab mich auch noch nicht großartig damit beschäftigt :) ).

Schon mal wieder "Vielen Dank" soweit !

Gruß, Kai
 

Kachelator

Peter Jerz
Welche Dateien meinst Du genau ? "msvcrt.dll" ? Wenn ja, woher weiß ich, welche ich alle rüberkopieren soll ?
Das kann ich dir leider auch nicht genau sagen. Wir haben Anwendungen auf älteren Testrechner mit Win9x in verschiedenen Konfigurationen laufen lassen, da traten gelegentlich ähnliche Probleme auf. Leider weiss ich nicht mehr genau, was wir gemacht haben. "msvcrt" steht für "Microsoft Visual Studio C Runtime".

Übrigens suche ich gerade auf meinen Platten nach der Datei und stelle fest, das praktisch jedes Spiel eine msvscrt.dll oder msvcrt40.dll bei sich hat. Interessant.

Na, es ist jedenfalls den Versuch wert.