У меня есть проект VS 2005 C ++ со сборками Debug и Release. Я попробовал следующие 4 вещи:
- Создайте исполняемый файл Debug через Visual Studio и запустите его через Visual Studio.
- Запускать встроенный исполняемый файл (1) извне через командную строку (Cygwin) после
cd
'до vstudio/debug
.
- Создайте исполняемый файл Release через Visual Studio и запустите его через Visual Studio.
- Запуск исполняемого файла (3), выполняемого извне, через командную строку (Cygwin) после
cd
в vstudio/release
.
Первые три успешно завершены: программа выполняется до конца.
Четвертый, однако, вылетает во время выполнения. Отладка показывает, что виновником является вызов malloc()
внутри оператора new()
. Соответствующий контекст выглядит примерно так:
template<typename T> class Foo {
...
static void bar() {
...
T* ptr = new T();
...
}
...
}
Если кто-то может подумать о какой-либо проблеме, которая может привести к описанным мною симптомам «3 из 4», это будет очень ценно.