Большое спасибо за советы и комментарии всем отозвавшимся!
Если диалог модальный, то отлаживать скорее всего нужно или его конструктор или его метод OnInitDialog.
А что в инициализации диалога используются какие-то функции ObjectARX? Если нет, то причем здесь версия ObjectARX?
Диалог модальный. Конструктор диалога вообще не содержит функций.
В OnInitDialog мне нужно заполнить список. Данные получаю из своего NamedObjectsDictionary:
errorStatus = acdbHostApplicationServices()->workingDatabase()->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead);
Далее
AcDbDictionary* pRoomDict = NULL;
errorStatus = pNamedobj->getAt(ROOM_DICTIONARY_VER_3, (AcDbObject*&)pRoomDict, AcDb::kForRead);
Все errorStatus проверяю. Далее через итератор прохожу по моему NamedObjectsDictionary, получаю необходимые значения и заполняю список. Все открытые объекты вовремя закрываю. За этим всегда смотрю внимательно. Итератор в конце работы удаляю.
Ошибок в NamedObjectsDictionary нет, так как в главном диалоге тоже заполняется другой список из того же словаря. И делается это успешно.
Так же мне необходимо для работы диалога получить информацию из базы данных чертежа:
AcDbDatabase* pDatabase = acdbHostApplicationServices()->workingDatabase();
Потом прохожу по базе чертежа и получаю информацию из нужных мне объектов. Здесь, конечно, надо еще раз пройти по всем функциям и проверить на открыл-закрыл объекты. Хотя, если бы были такие ошибки, то вылетало бы при всех версиях. Это я знаю хорошо
.
как вариант, на втором окне есть какой-то компонент, не совсем стандартный )))
Нестандартные компоненты в диалогах не применяю. Делаю это сознательно именно для полной совместимости со всеми версиями операционок и Автокадов.
ну и вторая мысля, которая случайно попала в голову ))) - переключение ресурсов.
Перед открытием диалога применяю CAcModuleResourceOverride.
Тогда это уподобляется лечению по фотографии...
Ну, есть такие люди, которые лечат по фотографии
.
Я обратился за помощью, потому что может кто уже сталкивался с проблемами.
А если всё же хочешь, чтобы работало и под Win8, то создавай создавай виртуальную машинку, ставь на ней интересующие тебя акады и тестируй, иначе возможно, что это не единственная проблема, которая неожиданно "всплывёт". IDE можно не ставить - удалённую отладку никто не отменял.
К сожалению, я не такой продвинутый в этих делах
. Так что пока попробую по простому, по крестьянски - найду комп с windows 8.
Что в итоге. Сейчас уже скачал ObjectARX 2016. Попробую перекомпилировать и послать программу человеку, у которого программа вылетает. Так же распечатаю код и проверю с карандашом в руках еще раз (наверное в десятый) построчно. Были у меня чудеса, когда ошибки в программах находились случайно лет через 5 после успешной эксплуатации программ. Но ошибки эти были все же не в таких явных местах, как инициализация диалогов. На работе нашел людей с Windows 8. Так что есть перспективы проверить. Еще раз спасибо за отзывы. По итогам борьбы отпишусь.