Перейти к содержанию

ISL

Клуб разработчиков
  • Публикаций

    406
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

ISL стал победителем дня 7 мая 2012

ISL имел наиболее популярный контент!

Репутация

9 Обычный

Информация о ISL

  • Звание
    Клуб разработчиков

Контакты

  • Сайт
    http://developer.nanocad.ru
  • ICQ
    0

Информация

  • Пол
    Мужчина
  • Город
    Москва
  • Интересы
    Разработка САПР

Посетители профиля

9 958 просмотров профиля
  1. В nanoCAD-е нет механизма загрузки по требованию, реализованного, как предварительная регистрация связки команда-модуль. Для загрузки Публикатора CADLib, входящего в состав nanoCAD-а, мы сами используем подобную Вашей конструкцию: (defun RUN_CADLIBENABLER_COMMAND (command_name / ) (if (eq nil (member "linCSLoader.nrx" (applist))) (appload "CADLibEnabler\\bin\\linCSLoader.nrx") ) (command command_name) (princ) )
  2. Перед /register всегда автоматически проходит /unregister, и он-то похоже, работает правильно. Ломать не строить ;).
  3. Действительно, под ограниченным пользователем регистрация не работает, а должна. Причём, эффект наблюдаю и в 21.0 и в 20.1. Будем разбираться.
  4. > HKEY_CLASSES_ROOT\nanoCADx64.Application.21.0 действительно появляется. > А вот в HKEY_USERS его нет ... Значит, не под текущим пользователем смотрите. HKEY_CLASSES_ROOT — это же представление (view), которое собирается из ключа HKEY_LOCAL_MACHINE\SOFTWARE\Classes, на который сверху накладывается ключ HKEY_CURRENT_USER\SOFTWARE\Classes. Не обращали, кстати, внимание на такую "странность"? Чтобы удалить ключ в HKEY_CLASSES_ROOT, это надо сделать дважды, удалил-F5-появилось-удалил-F5-уже не появилось. Это так именно потому, что сперва удаляется из HKCU, по F5 от
  5. 21-я и 20-я версия в реестре различаются, после ncad.exe /register ключ HKEY_CLASSES_ROOT\nanoCADx64.Application.21.0 появляется. Аналогично и после установки, инсталлятор тоже зовёт ncad.exe /register.
  6. Странно выглядит реестр. А где в нём nanoCADx64.Application.21.0? Что зарегистрировано на nanoCAD.Application, 20.x или 21.x, нужно смотреть в ключе nanoCAD.Application, а не в nanoCADx64.Application.20.0, откуда там взяться 21-й версии? Что касается подключения к бегущему nanoCAD-у, для различения версий, рекомендуем использовать полные названия вида nanoCADx64.Application.20.0 или nanoCADx64.Application.21.0.
  7. Эти данные подхватывает инсталлятор из системы, в дальнейшем их изменить нельзя.
  8. Может, от файлов зависит? Я попробовал пару — не повторяется. Опять же, добавлял код в пример HelloHost.
  9. В 20.1 описанного эффекта не наблюдаю. В какой версии смотрите?
  10. Чисто из спортивного интереса, вынести данные из транзакции (именно данные, а не объект) можно при помощи Clone(), но это получится уже другой объект, не добавленный в базу чертежа.
  11. Ну так это давно известно, что AutoCAD не соответствует своей собственной документации и рекомендациям по времени жизни объектов, которые живут дольше, чем должны. Но практика работы с большими приложениями, работающими под обеими платформами, показывает, что отказ от обращений к закрытым объектам повышает надёжность приложений. У нас всё просто: закрыли — значит закрыли, проблема видна сразу. В АвтоКАДе же такой код почти всегда работает, но иногда сборщик мусора приходит чуть раньше и начинаются блуждающие проблемы. Справедливо и для C++, где нет сборщика мусора, но эффект есть.
  12. Взял пример SDK HelloHost, добавил в команду HelloHost_Example1 строки: Database db = HostApplicationServices.WorkingDatabase; using (Transaction tr = db.TransactionManager.StartTransaction()) { var lt = tr.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; } Собрал в VS2012, загрузил в 20.1 x64: Что я делаю не так?
  13. Приведите, пожалуйста, код, в котором получено значение lt.
  14. Содержимое UserDataCache копируется каждому пользователю в AppData при первом старте, так что модифицированный cfg.ini попадёт куда нужно.
  15. Тоже костыль, но вероятно чуть поудобней, чем удаление ссылки. Можно вместо тяжёлого файла положить одноимённый пустой и лёгкий. Главное, не забыть вернуть всё обратно.
×
×
  • Создать...