witam,
korzystam z Dev-C++ 4.9.9.2 i podczas dzialania programu nagle zaczelo mi wywalac bledy. Po zbadaniu okazalo sie ze wartosc wskaznika jakby jest gdzies w programie zerowana. Pisze jakby dlatego ze po sprawdzeniu w programie:
if (myClass.wsk == 0)
MessageBox(NULL, "blad", "blad", MB_OK) ;
wyskakuje mi okienko. Ale jak sobie obserwuje zmienna w oknie debugera to widac ze ma jednak jakas wartosc i zerowa nie jest!
Jak sobie zatrzymam program przed ta instrukcja sprawdzajaca, widze w oknie debugera ze zmienna ma wartosc np. 0x3e3f98 i zmodyfikuje ta wartosc na taka sama tzn wybiore sobie okienko "modyfikuj wartosc" i wcisne OK (nic nie zmieniajac bo jest poprawna) to wtedy wszystko jest w porzadku.
Co ciekawe zachowuje sobie codziennie poprzednie wersje i po rozpakowaniu wczesniejszych exeki dzialaja poprawnie ale jak je ponownie skompiluje to wychodzi ten sam blad.
glowie sie nad tym od dwoch dni i jestem w kropce.
w tej chwili obiekt myClass jest tworzony jeden na caly program a robie to tak:
w pliku main.h
class MyClass
{
public:
WSK* wsk ;
} ;
extern MyClass myClass ;
w pliku main.cpp
#include "main.h"
MyClass myClass ;
...
jakis innyplik.h
#include "innyplik.h"
class InnaKlasa
{
void funkcja() ;
} ;
innyplik.cpp
void InnaKlasa::funkcja()
{
// i tu jak sprawdze
// to sie okazuje ze jest zero a debuger pokazuje co innego
if (myClass.wsk == 0) {}
}
Dodam jeszcze ze jak sobie na nowo utworze projekt taki jak powyzej wypisalem to wszystko gra tylko w tym cos sie spieprzylo (mam w nim obecnie kilkaset plikow). Instalowalem tez poprzednie wersje Dev-C++ i ten sam blad.
Co o tym sadzicie? Co moge zrobic w takiej sytuacji?