Kompilierung Endgültig Debug



  • Hallo zusammen

    Ich steuere in einem Programm ein externen Gerät über GPIB (IEEE488) an. Dies wird über eine mitgelieferte DLL gemacht. Ich hab es nun geschafft die DLL dynamisch zu Linken, da statisch nicht möglich war.
    Wenn ich nun aber in den Projekteigenschaften von Debug auf Endgültig umstellen, bekommen ich eine Zugriffsverletzung auf Speicher xyz wenn das Gerät initialisiert wird. Wenn keine Codeoptimierung eingestellt ist funktioniert alles.

    Was hab ich hier für Möglichkeiten den Fehler zu finden, weil mit Breakpoints und so is ja nix. Irgendjemand eine Idee?

    MfG Stephan



  • Machs auf die altmodische Art (vor Erfindung des Debuggers) und bau dir Zwischenausgaben ein, um zu schauen wo das Problem liegt.



  • Ich hatte mal ein ähnliches Problem, aber helfen konnte mir keiner: http://www.c-plusplus.net/forum/viewtopic-var-t-is-133750.html

    Ich konnte das aber auf die Compileroption "Inline Expansion" zurückführen. Diese Option führte im Zusammenhang mit Aufrufen meiner externen DLL dazu, das Strings mit .c_str() nicht richtig übergeben wurden.



  • Das sollte man sowieso lassen. Der Speicherbereich auf den das c_str von deinem String zeigt ist bei Verwendung evtl. schon nicht mehr gültig. Hier hilft immer schön kopieren.
    Wobei ich zugeben muß, mit genau diesem Compilerflag, auch schon Schwierigkeiten gehabt zu haben (war nicht mal eine dll).



  • Hallo zusammen

    Na dann werd ich mir mal ein Logfile erzeugen lassen. Mal sehen ob mich dies weiter bringt.
    Ich dachte, daß es eventuell noch weitere Möglichkeiten gibt.

    MfG Stephan


Anmelden zum Antworten