|
Исходный код тестировался различными средствами разработки. Как правило, при компоновке моего программного кода новейшими компиляторами возникали небольшие проблемы, которых компиляторы предыдущего поколения не вызывают. Кроме того, я также обнаружил ошибки в библиотеках, несовместимость с некоторыми компиляторами и другие неприятные проблемы. Новые версии скорее всего подобные проблемы снова будут иметь место. Как правило, код компилируется (или тестируется) без выдачи предупреждений. Однако во всех использовавшихся мной системах некоторые опции вызывали предупреждение среды о проблемах с системными заголовками. B каждом случае я отключал эти опции: - Microsoft Visual C++ 4.2 под Windows 95. Применение ключевого слова bool вызывало ряд предупреждений компилятора, хотя код компилировался и выполнялся правильно. Компилятор версии 4.2 не поддерживает bool - Microsoft Visual C++ 5.0 под Windows 95. Компилятор версии 5.0 все еще - Metrowerks CodeWarrior GoId 11 под Mac OS 0.76. Я испытал некоторые трудности с CodeWarrior GoId 11, в основном с поддержкой потока ввода/ вывода C++. B результате, большая часть текстового вывода некорректна (библиотека выводит неправильно длинные целые значения с использованием записи cerr << i). Эти ошибки оказываются весьма незначительными: если отвлечься от некорректного текстового вывода, то в целом весь программный код работает правильно. Пока книга была в печати, я испробовал более новые версии библиотек Metrowerks, которые избавились от - GNU GCC 2.7.2 под FreeBSD 2.1. Ha этой системе была запущена Network Audio System patchlevel 1. Настоящая GNU-реализация стандартной библиотеки C++ не включает полного набора новых заголовков. Например, вам, возможно, потребуется создать файл cstdio, который просто подключает stdio.h. (Действующая версия стандарта C++ определяет, что у заголовков не должно быть расширений. Она также предоставляет возможность исполь - Parasoft CodeWizard под Windows 95. CodeWizard указал мне на то, что я не могу освобождать, используя delete, определенные переменные-указатели в деструкторах. В большинстве случаев я реализовывал несколько копий указателя на общий блок памяти (см. SampledNote), поэтому достаточно освободить один из указателей. (B случае с SampledNote место хранения семпла в действительности принадлежит другому объекту, освобождать ни - NuMega BoundsChecker под Windows 95. Операция FinalCheck этой программы не восприняла некоторые непроинициализированные переменные в библиотеках Windows, а также указала на некоторые места в программе, где я размещал в памяти и инициализировал таблицы и после этого (нарочно) Если вы пытаетесь заставить работать этот код на другом компиляторе или другой операционной системе, пожалуйста, дайте мне знать
|