Добрый день!
Вот и сбылся со мной анекдот — сообщение об ошибке вызвало ошибку
В двух словах: генерирую исключение, хочу посмотреть текст. Вылетаю. Вот код:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
class CSomeException
{
private:
wchar_t* _msg;
int _code;
public:
CSomeException(int code, const wchar_t* msg)
{
size_t len = wcslen(msg);
_msg = new wchar_t[len + 1];
wcscpy(_msg, msg);
_msg[len] = L'\0';
_code = code;
}
wchar_t* GetMessage()
{
return _msg;
}
int GetCode()
{
return _code;
}
~CSomeException()
{
delete _msg;
}
};
int main()
{
try
{
throw (CSomeException(0, L"Error string"));
}
catch(CSomeException& exc)
{
MessageBox(0, exc.GetMessage(), L"", 0);
}
//
puts("End...");
_getch();
return 0;
}
Причем получается так, что при переделке с использования wchar_t на std::wstring пример работает. Не могу понять, почему приведенный текст не работает. Помогите