Ik heb een functie die mijn object (van de klasse CPreferences) binair wegschrijft naar een bestand.
Als ik deze functie aanroep, als mijn applicatie afsluit, wordt het bestand netjes geschreven.
Nu wil ik dus dat het bestand weer wordt ingelezen als de applicatie start. Met de volgende aanroep:
met de bijbehorende functie:
Preferences is vantevoren al gedeclareerd en geinitialiseerd middels zijn constructor (de gebruiker krijgt de default waarden als de file niet gelezen kan worden). Ik krijg dus bij het inlezen van het binaire bestand een "access violation error".
Iemand die misschien wat het probleem kan zijn.
C++:
1
2
3
4
5
| void WritePreferences( CPreferences prefs, char *pref_filename ) { ofstream outfile( filename, ios::binary ); outfile.write( (char *)&prefs, sizeof( CPreferences ) ); } |
Als ik deze functie aanroep, als mijn applicatie afsluit, wordt het bestand netjes geschreven.
Nu wil ik dus dat het bestand weer wordt ingelezen als de applicatie start. Met de volgende aanroep:
C++:
1
| ReadPreferences( *Preferences, "preferences\\mri_prefs.dat" ); |
met de bijbehorende functie:
C++:
1
2
3
4
5
| void ReadPreferences( CPreferences &prefs, char *filename ) { ifstream infile( filename, ios::binary ); infile.read( (char *)&prefs, sizeof( CPreferences ) ); } |
Preferences is vantevoren al gedeclareerd en geinitialiseerd middels zijn constructor (de gebruiker krijgt de default waarden als de file niet gelezen kan worden). Ik krijg dus bij het inlezen van het binaire bestand een "access violation error".
Iemand die misschien wat het probleem kan zijn.