Mam tylko 1 wiersz kodu, a to:Dlaczego otrzymuję błąd przekroczenia bufora z tym wierszem kodu?
pcrecpp::RE re("abc");
wewnątrz funkcji OnBnClickedButtonGo()
. Ta funkcja nie działa w trybie Release, ale działa poprawnie w trybie debugowania.
(używam Visual Studio 8 w systemie Windows XP).
Komunikat o błędzie jest:
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'.
Podejrzewam, że jest jego destruktor, który jest niewidoczny i zrozumienia ... ale ja don Naprawdę wiem.
PS: Łączę statycznie z wersją biblioteki PCRE 7.8. PS2: Niezbyt trafne, ale może pomóc niektórym osobom, które mają problemy z łączeniem się z biblioteką PCRE (zajęło mi to trochę czasu, aby to rozwiązać): dołącz linię #define PCRE_STATIC
.
Czy zbudowałeś bibliotekę, czy też była to biblioteka konserwowa? Tak czy inaczej, czy został skompilowany z tym samym kompilatorem? Jeśli nie, spróbuję zbudować bibliotekę z twoim kompilatorem i zobaczę, czy to pomaga. –