12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef NULLSOFT_AUTOCHARH
- #define NULLSOFT_AUTOCHARH
- class AutoChar
- {
- public:
- AutoChar(const wchar_t *convert) : allocated(false), narrow(0)
- {
- // review maybe CP_UTF8?
-
- int size = WideCharToMultiByte(CP_ACP, 0, convert, -1, 0, 0, NULL, NULL);
- if (!size)
- return;
- narrow = new char[size];
- allocated=true;
- if (!WideCharToMultiByte(CP_ACP, 0, convert, -1, narrow, size, NULL, NULL))
- {
- delete [] narrow;
- narrow=0;
- allocated=false;
- }
- }
- ~AutoChar()
- {
- if (allocated)
- {
- delete [] narrow;
- narrow=0;
- allocated=false;
- }
- }
- operator char *()
- {
- return narrow;
- }
- private:
- bool allocated;
- char *narrow;
- };
- #endif
|