Methods of storing application data/settings without the registry?


I need some methods of storing and getting data from a file (in WIN32 api c++ application, not MFC or .NET)

e.g. saving the x, y, width and height of the window when you close it, and loading the data when you open the window.

I have tried .ini files, with the functions — WritePrivateProfileString and ReadPrivateProfileString/Int, but on MSDN it says

“This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry.”

and when i tried on my Windows7 64bit machine to read a ini file, i got blue screen! (in debug mode with visual studio) O.O

I notice that most other application use XML to store data, but I don’t have a clue how to read/write xml data in c++, are there any libraries or windows functions which will allow me to use xml data?

Any other suggestions would be good too, thanks.


TinyXML is a popular and simple XML parser for C++.

Apart from that, you can really use any format you want to store your settings, though it’s considered good practice to keep settings in text format so that they can be hand-edited if necessary.

It’s fairly simple to write your own functions for reading/writing a file in INI or similar format. The format is entirely up to you, as long as it’s easily comprehensible to humans. Some possibilities are:

; Comment
# Comment
Key = Value (standard INI format)
Key Value
Key: Value

Answered By – casablanca

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published