Ресурсы Unigraphics:
|
Здесь я уделю не большое внимание отладке пользовательских программ и шаблонов.
О том как производить отладку DLL и
Grip под Юниграфиком - прекрасно описано в Справке.
Хотя каждый программист обязательно старается написать свой класс для вывода
логов. Или замутить, что-нибудь свое )))
Вот, примерно как тут: |
Программа для тестирования и ведения логов.
UG_Test.zip Программа написанная студентами. Кто-то дал им задание на разработку кодов\класса для тестирования. Параллельно они замутили для ведения\вывода Лог-файлов. Мне очень понравилась. Но использовать я её не буду. :):):):), ни в каком виде. |
Я при разработке\отладке программ использую 2 - а механизма:
1. Это усиленное использование конструкций-функций
|
if ( 0 != errorCode ) |
|
str[0]='\0'; sprintf (str,"Исключение в обработке диалога\n %s \n программа прервана..", actions->styler_file); |
|
str[0]='\0'; sprintf (str," Невозможно выделить память, \n Ошибка выполнения..", .........); |
|
UF_UI_open_listing_window(); UF_OPER_ask_name_from_tag(prg, prog_name); ........ |
2. Однажды при ознакомлении
исходников из фирмы я натолкнулся на файлы с названиями :
make_window_for_printf.c
make_window_for_printf_on_wnt.cpp
в них говорилось, примерно следующее:
Вольный мой перевод с англицкого: | Вывод с помощью
C-функции "printf" больше не будет показываться в окне, начиная
UG V16.0. V16.0 UG является приложением Windows и больше не имеет консольного вывода и как следствие этого вывод "printf" виден не буден. Для решения этой проблемы, постройте библиотеку используя ниже указанный код. Перенесите полученную .dll в "startup" or "udo" поддиректории папки перечисленных в %UGII_CUSTOM_DIRECTORY_FILE%. Эта программа будет создавать окно каждый раз при запуске UG. В этом окне Вы можете смотреть вывод stdout. For more information on the "startup" or "udo" subdirectories or the UGII_CUSTOM_DIRECTORY_FILE environment variable, consult the UG/Open Menuscript documentation. |
я задумался и отмахнулся. Через некоторое время в документации по
UG снова натолкнулся на текст выше. Задумался. И
тут меня осенило. Блин.
Вы вообще когда-нибудь задумывались как создатели UG
тестируют шаблоны, классы, ugpost_base.tcl
? Обратите внимания как много в этих файлах закомментированных
puts
# puts stdout " OPENED FRESH MAIN $warning_file_name ; CHANNEL $warn_file"
# puts stdout " GENERATING : $warning_file_name"
...
puts " ========================================================"
puts " procedure DBC_execute_query_for_count for machine tool"
puts " query string -> $dbc_query"
.....
Учитывая что у меня была своя среда для создания и отладки
программ и постпроцессоров :
я сделал проект:
printf_for_windows.zip
Для отладки программ вывод сообщений printf|cout|puts на консоль.
Полученную dll скопировал в папку startup и теперь при запуске UG у меня
появлялось черное окно - а-ля cmd . В котором
выводилась любая информация выводимая функция printf|cout|puts. Это
окно нельзя закрывать, иначе Окно Юга тоже закроется. :):)
Теперь при создании пользовательских программ - для вывода
отладочной информации , я использовал printf|cout|puts.
Вывод этих сообщений мне будет виден, ведь у меня подключена
printf_for_windows.dll . А обычному пользователю
эта информация выводиться не будет.
Также, этим способом можно было отлаживать свои изменения в шаблонах и классах.
Copyright © 2001—2009 че