Моя среда разработки - [Windows 7; визуальная студия 2010; x86].
У меня есть DLL, которая была построена для сервера 2003 давным-давно. Когда я использую его в своем проекте и следую последовательности new / delete для использования класса, приложение вылетает во время вызова удаления. Я подтвердил то же самое, даже без какого-либо другого вызова между новым и удалить. Когда я заменяю new / delete на malloc / free, сбоев не происходит. Если я просто объявляю экземпляр класса без нового, при выходе из области не происходит никакого сбоя.
Есть идеи, что может пойти не так? Это внутренняя библиотека нашей компании, поэтому я не смогу назвать ее и другие подобные вещи.
Дополнительная информация:
Чтобы использовать эту библиотеку в первую очередь, мне пришлось отключить функцию VS "Обрабатывать wchar_t как встроенный тип".
Код прост
{
CLogger * myLog = new CLogger();
delete myLog; // Crash happens here
}
{ // No crash here
CLogger MyLog;
}
{
CLogger * myLog = (CLogger *) malloc (sizeof(CLogger));
free (myLog); // This does not crash.
}
Поскольку это проприетарная библиотека, я не могу опубликовать конструктор и деструктор.