Wednesday, August 15, 2012

Crusing for Registry Interface Classes for use in win32 C++

I am looking at drragging some old c-ish win32 class that handles my registry IO forward into the current century. My option is either to re-write it, test, debug..etc or find some code that has the job done already.

My criteria would be:

STL aware ( at least for reasonable string type handling )
Fairly modern C++
Not include dependencies for stuff I don't use/want/have (MFC, Managed, .NET, ATL, etc)
Sane Exception design.
Unicode aware or at least cleanly written.
Secure use of std c functions. (_s variants)

My survey of the options is:


http://www.codeproject.com/Articles/14508/Registry-Manipulation-Using-NT-Native-APIs
This is much more functionally complete but needs a complete re-write.  While interesting in that it uses the NTAPI calls.  The Unicode handling is a mess and needs a re-write along with the general structure and error handling philosophy.
No maintenance since 2006

http://www.codeproject.com/Articles/19/Registry-Class
This is fairly rudimentary and uses the Win32API calls. (RegCreateKey etc)
No maintenance since 1999
http://www.codeproject.com/Articles/2521/Another-registry-class
Looks like early Windows Classes Style of code. 
No maintenance since 2003

http://www.codeproject.com/Articles/2916/CRegSettings-registry-helper-class
Written in a kind of C meets MFC style. Very Quick and dirty.
No maintenance since 2002

http://www.codeproject.com/Articles/6676/Access-Registry-Settings-Declaratively
Written in old school MFC/ATL style Macro madness. Nice work back in the day but a pain to maintain or use going forward.
No maintenance since 2004.

http://www.codeproject.com/Articles/10729/A-nother-C-Registry-Wrapper
Written in fairly modern c++. STL aware. Unit tests of some description.  All Win32API, fairly simple design.
No maintenance since 2005

http://www.codeproject.com/Articles/936/Stream-like-operations-for-the-registry
This is an interesing style.  Seems to be fairly simple in terms of functionality. Written in older Win32 style with error codes and error flags rather than exceptions. Basic use of templates.
No maintenance since 2001

http://www.codeproject.com/Articles/3611/Simple-Stack-Based-Wrapper-for-Windows-and-XML-Reg
 This looks nice.
No maintenance since 2004

http://www.codeproject.com/Articles/11913/An-AES-Encrypting-Registry-Class
Registry wrapper with encryption. Interesting but overkill for my needs.
No maintenance since 2007

http://www.codeproject.com/Articles/345/Registry-API-Wrapper
Yet another "simple" wrapper for the Registry. Pre STL and very old school. Not Unicode compliant.
No maintenance since 2000

http://www.codeproject.com/Articles/1031/A-Registry-Class
A bit old school but well written.
Some comments posting fixes in 2009 for Unicode issues.

http://www.codeproject.com/Articles/1108/CPJRegistry-2-0
MFC audience.
No maintenance since 2001

http://www.codeproject.com/Articles/8708/S-I-V-Simple-registry-config-class
Another "simple" class
No maintenance since 2004

http://65.39.148.52/Articles/8953/Registry-Wrapper-Class-CRegistry
Looks a bit MFC style. Some bugs in the comments.
No maintenance since 2005.

http://65.39.148.52/Articles/2535/A-set-of-template-classes-for-working-with-the-reg
Uses templates so there is some hope.  A bit dated as far as functionality goes.
No maintenance since 2002

http://65.39.148.52/Articles/1803/CRegisterEx-a-registry-wrapper-class
Looks like a simple read/write wrapper.
No maintenance since 2002.

http://65.39.148.52/Articles/10046/Registry-Wrapper-to-save-your-Application-settings
Another simple read/write wrapper.
No maintenance since 2005.

http://code.google.com/p/cregistry/
No information that I can find about this.

http://www.engr.sjsu.edu/wbarrett/registry.htm
Very basic functionality. Looks like write only.

http://www.codeguru.com/cpp/w-p/win32/article.php/c1433/Registry-API-Wrapper.htm
No maintenance since 1998.

http://65.39.148.52/Articles/343664/Template-Cplusplus-wrapper-for-Windows-registry
Looks nice, smells nice. Nice. 
Posted 2012. 

I think my search is over.  This is current generation code and frankly there is nothing better out there that I can turn up in this time.  I'm done.




No comments:

Post a Comment