Пожалуйста, не распинайте меня за это. Я решил, что было бы хорошо использовать char *, потому что строка, которую я собирался создать, имела известный размер. Я также знаю, что если timeinfo-> tm_hour вернет что-то отличное от 2 цифр, то все будет плохо. Тем не менее, когда эта функция возвращает VIsual Studio, я думаю о HEAP CORRUPTION. Что не так? (Кроме того, я должен просто использовать строителя строк?)
void cLogger::_writelogmessage(std::string Message)
{
time_t rawtime;
struct tm* timeinfo = 0;
time(&rawtime);
timeinfo = localtime(&rawtime);
char* MessageBuffer = new char[Message.length()+11];
char* msgptr = MessageBuffer;
_itoa(timeinfo->tm_hour, msgptr, 10);
msgptr+=2;
strcpy(msgptr, "::");
msgptr+=2;
_itoa(timeinfo->tm_min, msgptr, 10);
msgptr+=2;
strcpy(msgptr, "::");
msgptr+=2;
_itoa(timeinfo->tm_sec, msgptr, 10);
msgptr+=2;
strcpy(msgptr, " ");
msgptr+=1;
strcpy(msgptr, Message.c_str());
_file << MessageBuffer;
delete[] MessageBuffer;
}