Если это Ваш первый визит, ознакомьтесь с разделом Справка. Для размещения сообщений нужно пройти регистрацию или выполнить вход, если Вы были зарегистрированы.
Для просмотра сообщений выберите нужный раздел из списка ниже.
Начальный анализ не показал проблем, все сделано корректно
Включаем отображение замечаний:
Видим исключение, возникающее при компиляции.
Причина исключения:
Причина возникновения исключения в том, что при создании объекта mainPumpGroups в конструкторе через метод UpdatePumpSignals есть обращение к еще не инициализированному объекту s_BlockMsPump2.
Посмотрим на свойство "Глобальные экземпляры" у приложения:
Объекты BlockMsPump2 и BlockMsPump3 находятся в самом конце списка, после mainPumpGroups.
Для устранения ошибки компиляции есть несколько решений:
1. Самое простое - нужно создавать объекты, к которым обращается mainPumpGroups, раньше него. Для этого нужно мышкой перетащить глобальные экземпляры выше mainPumpGroups в списке.
2. Не использовать в конструкторе mainPumpGroups обращение к объектам, которые еще могут не существовать. Сделайте отдельный метод Initialize, НЕ ВЫЗЫВАЕМЫЙ из конструктора.
3. При обращении к указателям, хотя бы при их инициализации, используйте проверки на валидность:
В выпуске 1.6.34 доработано отображение ошибок - исключение, возникающее при компиляции такого проекта, отображается как ошибка.
Также устранены неинформативные замечания.
Комментарий