Ich habe nur 1 Zeile Code, und das ist:Warum erhalte ich einen Pufferüberlauffehler mit dieser Codezeile?
pcrecpp::RE re("abc");
innerhalb einer Funktion OnBnClickedButtonGo()
. Und diese Funktion schlägt im Freigabemodus fehl, funktioniert aber im Debug-Modus.
(I Visual Studio 8 unter Windows XP verwenden.)
Die Fehlermeldung lautet:
A buffer overrun has occurred in testregex.exe which has corrupted the program's
internal state. Press Break to debug the program or Continue to terminate
the program.
For more details please see Help topic 'How to debug Buffer Overrun Issues'.
Ich vermute, dass es seinen destructor ist, die unsichtbar und implizierte ist ... aber ich don Ich weiß es wirklich nicht.
PS: Ich bin statisch mit der PCRE-Bibliothek Version 7.8 verbunden. PS2: Nicht sehr relevant, kann aber einigen Leuten helfen, die Probleme beim Verlinken mit der PCRE-Bibliothek haben (es hat mich Stunden gekostet, das Problem zu lösen): füge die Zeile #define PCRE_STATIC
hinzu.
Haben Sie die Bibliothek erstellt, oder war es eine gespeicherte Bibliothek? Wie auch immer, wurde es mit dem gleichen Compiler kompiliert? Wenn nicht, würde ich versuchen, die lib mit Ihrem Compiler zu erstellen und sehen, ob das hilft. –