С++ вывода информации в листенер, как? |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
С++ вывода информации в листенер, как? |
13/03/2012, 16:48
Сообщение
#1
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
Доброго времени суток.
решил попробовать писать на С++. Пока конечно больше вопросов чем ответов и вот первый вопрос - при написании через максскрипт можно использовать print для вывода информации в листенер. А как делать в ситуации с С++ если есть необходимость вывести различную информацию во время работы плагина? Какие есть варианты? |
|
|
13/03/2012, 17:38
Сообщение
#2
|
|
Советчик Группа: Пользователи Сообщений: 87 Регистрация: 22/04/2008 Пользователь №: 63 568 |
Мы сделали собственное окно для вывода различной информации. Но возможно вам это не нужно, попробуйте использовать функцию ExecuteMAXScriptScript
|
|
|
13/03/2012, 19:48
Сообщение
#3
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
Можно вывести в листенер, можно взять какой ни будь логер...
Что-бы в листенер вывести подключаешь //#include "maxscrpt/MAXScrpt.h" //#include "maxscrpt/listener.h" какой то из этих, по моему верхний, у меня 2 подключены были.... пример как юзать CODE //----------------------------------------------------------------------------------// if (DEBUG_MESSAGES_DSFDATA ) {mprintf("DBG_INF: POINT PRECISION:%f %f %f\n", point.x,point.y, point.z);}; //----------------------------------------------------------------------------------// Но я бы рекомендовал юзать логер.... И дебаг... - это вообще не заменимая вещь пр отлове проблем! ПС я думаю может одну общую тему по C++ создать, ибо тут темы по нему редкость, и что бы не была инфа разбросана... Сообщение отредактировал Pancir - 13/03/2012, 19:52 |
|
|
13/03/2012, 20:02
Сообщение
#4
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
а для дебага при помощи VS разве не нужна дебаг-версия 3дмакса?
|
|
|
13/03/2012, 20:07
Сообщение
#5
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
Смотря какой дебаг )) Я так понимаю в дебаг версии макса ,многие исходники макса будешь видеть, а в не дебаг не будешь (поправте если не так), но на практике мне для написания плагина, пока не понадобилось, что-то видеть в максе, достаточно того, что я вижу данные своего кода, а чем там макс занимается меня пока не волнует....
Сообщение отредактировал Pancir - 13/03/2012, 20:08 |
|
|
13/03/2012, 20:13
Сообщение
#6
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
Можно вывести в листенер, можно взять какой ни будь логер... Что-бы в листенер вывести подключаешь //#include "maxscrpt/MAXScrpt.h" //#include "maxscrpt/listener.h" какой то из этих, по моему верхний, у меня 2 подключены были.... пример как юзать CODE //----------------------------------------------------------------------------------// if (DEBUG_MESSAGES_DSFDATA ) {mprintf("DBG_INF: POINT PRECISION:%f %f %f\n", point.x,point.y, point.z);}; //----------------------------------------------------------------------------------// что-то не выводится в листенер ничего... в пустой Utility скрипт в BeginEditParams пишу mprintf("DBG_INF: POINT PRECISION"); и ничего не выводит, но и не ругается. инклуд maxscrpt/MAXScrpt.h сделал, а maxscrpt/listener.h он что-то вообще не нашел у меня.. нет такого файла в SDK |
|
|
13/03/2012, 20:20
Сообщение
#7
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
из категории "а знаешь ли " BeginEditParams срабатывает когда на кнопку жмешь, которая запускает утилиту
QUOTE а maxscrpt/listener.h он что-то вообще не нашел у меня Под макс какой пишешь? Я просто под версию 9, в новых версиях могли, что-то поменять, я уже напарывался на такие моменты Сообщение отредактировал Pancir - 13/03/2012, 20:24 |
|
|
13/03/2012, 20:22
Сообщение
#8
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
как бы знаю.. однако другие вещи при этом срабатывают а вывода в листенер нет...
|
|
|
13/03/2012, 20:24
Сообщение
#9
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
Обновил пост...
|
|
|
13/03/2012, 20:26
Сообщение
#10
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
под макс 2012 пишу.. сдк соответственно тоже под него
вот тот самый beginEditParams void maxProject1::BeginEditParams(Interface* ip,IUtil* iu) { this->iu = iu; this->ip = ip; hPanel = ip->AddRollupPage( hInstance, MAKEINTRESOURCE(IDD_PANEL), DlgProc, GetString(IDS_PARAMS), 0); ip->PushPrompt("test"); MessageBox(NULL, _T("My MAXScript plug-in is loaded!!"), _T("Testing!"), MB_OK); mprintf("DBG_INF: POINT PRECISION"); } вот в промпт строчку выводит... окошко с кнопокй показывает...а в листенере ничего... |
|
|
13/03/2012, 20:29
Сообщение
#11
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
проверил щас у себя , тоже не печатает, странно.... пытаюсь понять почему.... ибо я тот код из проекта выдернул где он прекрасно работал....
|
|
|
13/03/2012, 20:30
Сообщение
#12
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
если разберешься то скинь плиз решение очень нужно!
|
|
|
13/03/2012, 20:34
Сообщение
#13
|
|
Избранный :) Группа: Участник Сообщений: 5 052 Регистрация: 20/01/2004 Из: Химки м/о Пользователь №: 4 253 |
простую строчку не проглатывает....
CODE Point3 point (1.1,2.2,3.3); mprintf("DBG_INF: POINT PRECISION:%f %f %f\n", point.x,point.y, point.z); так например работает CODE mprintf("DBG_INF: POINT PRECISION:%f %f %f\n"); даже так работает Я тебе как то писал давно, в асю стукни, помогу чем смогу.... ася в профиле, включен анти спам, авторизация не пройдет, только сообщение пролетит... Сообщение отредактировал Pancir - 13/03/2012, 20:40 |
|
|
13/03/2012, 20:41
Сообщение
#14
|
|
Уважаемый Группа: Пользователи Сообщений: 917 Регистрация: 24/12/2003 Из: Тольятти Пользователь №: 3 979 |
походу дело в конце строки \n
без нее не работает, а с ней нормуль. Спасибо за наводку А как очистить листенер? И вообще где про эти методы почитать можно.. в справке по SDK что-то не нашел вообще про это |
|
|
13/03/2012, 22:29
Сообщение
#15
|
|
Советчик Группа: Пользователи Сообщений: 87 Регистрация: 22/04/2008 Пользователь №: 63 568 |
Смотря какой дебаг )) Я так понимаю в дебаг версии макса ,многие исходники макса будешь видеть, а в не дебаг не будешь (поправте если не так), но на практике мне для написания плагина, пока не понадобилось, что-то видеть в максе, достаточно того, что я вижу данные своего кода, а чем там макс занимается меня пока не волнует.... Да, многие исходники макса видно. Но пользы от них мало, да и грузится такой макс нааамного дольше обычного. При тестировании и отладке я использую 2009 макс 32 бит. Грузиться быстро (быстрее 2012), а 32бит позволяет изменять код "на ходу", во время остановки в точках Breakpoint. |
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 24/04/2024 - 14:00 |