3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Reply to this topicStart new topic
> С++ вывода информации в листенер, как?
illusion21
сообщение 13/03/2012, 16:48
Сообщение #1


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



Доброго времени суток.
решил попробовать писать на С++. Пока конечно больше вопросов чем ответов и вот первый вопрос - при написании через максскрипт можно использовать print для вывода информации в листенер.
А как делать в ситуации с С++ если есть необходимость вывести различную информацию во время работы плагина? Какие есть варианты?
Go to the top of the page
 
+Quote Post
exlevel
сообщение 13/03/2012, 17:38
Сообщение #2


Советчик
Иконка группы

Группа: Пользователи
Сообщений: 87
Регистрация: 22/04/2008
Пользователь №: 63 568



Мы сделали собственное окно для вывода различной информации. Но возможно вам это не нужно, попробуйте использовать функцию ExecuteMAXScriptScript
Go to the top of the page
 
+Quote Post
Pancir
сообщение 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
Go to the top of the page
 
+Quote Post
illusion21
сообщение 13/03/2012, 20:02
Сообщение #4


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



а для дебага при помощи VS разве не нужна дебаг-версия 3дмакса?
Go to the top of the page
 
+Quote Post
Pancir
сообщение 13/03/2012, 20:07
Сообщение #5


Избранный :)
Иконка группы

Группа: Участник
Сообщений: 5 052
Регистрация: 20/01/2004
Из: Химки м/о
Пользователь №: 4 253



Смотря какой дебаг )) Я так понимаю в дебаг версии макса ,многие исходники макса будешь видеть, а в не дебаг не будешь (поправте если не так), но на практике мне для написания плагина, пока не понадобилось, что-то видеть в максе, достаточно того, что я вижу данные своего кода, а чем там макс занимается меня пока не волнует....

Сообщение отредактировал Pancir - 13/03/2012, 20:08
Go to the top of the page
 
+Quote Post
illusion21
сообщение 13/03/2012, 20:13
Сообщение #6


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



QUOTE (Pancir @ 13/03/2012, 20:48) *
Можно вывести в листенер, можно взять какой ни будь логер...
Что-бы в листенер вывести подключаешь
//#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
Go to the top of the page
 
+Quote Post
Pancir
сообщение 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
Go to the top of the page
 
+Quote Post
illusion21
сообщение 13/03/2012, 20:22
Сообщение #8


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



как бы знаю.. однако другие вещи при этом срабатывают а вывода в листенер нет...
Go to the top of the page
 
+Quote Post
Pancir
сообщение 13/03/2012, 20:24
Сообщение #9


Избранный :)
Иконка группы

Группа: Участник
Сообщений: 5 052
Регистрация: 20/01/2004
Из: Химки м/о
Пользователь №: 4 253



Обновил пост...
Go to the top of the page
 
+Quote Post
illusion21
сообщение 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");
}


вот в промпт строчку выводит... окошко с кнопокй показывает...а в листенере ничего...
Go to the top of the page
 
+Quote Post
Pancir
сообщение 13/03/2012, 20:29
Сообщение #11


Избранный :)
Иконка группы

Группа: Участник
Сообщений: 5 052
Регистрация: 20/01/2004
Из: Химки м/о
Пользователь №: 4 253



проверил щас у себя , тоже не печатает, странно.... пытаюсь понять почему.... ибо я тот код из проекта выдернул где он прекрасно работал....
Go to the top of the page
 
+Quote Post
illusion21
сообщение 13/03/2012, 20:30
Сообщение #12


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



если разберешься то скинь плиз решение smile.gif очень нужно! smile.gif
Go to the top of the page
 
+Quote Post
Pancir
сообщение 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
Go to the top of the page
 
+Quote Post
illusion21
сообщение 13/03/2012, 20:41
Сообщение #14


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 917
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



походу дело в конце строки \n
без нее не работает, а с ней нормуль. Спасибо за наводку smile.gif
А как очистить листенер? И вообще где про эти методы почитать можно.. в справке по SDK что-то не нашел вообще про это
Go to the top of the page
 
+Quote Post
exlevel
сообщение 13/03/2012, 22:29
Сообщение #15


Советчик
Иконка группы

Группа: Пользователи
Сообщений: 87
Регистрация: 22/04/2008
Пользователь №: 63 568



Цитата(Pancir @ 13/03/2012, 20:07) *
Смотря какой дебаг )) Я так понимаю в дебаг версии макса ,многие исходники макса будешь видеть, а в не дебаг не будешь (поправте если не так), но на практике мне для написания плагина, пока не понадобилось, что-то видеть в максе, достаточно того, что я вижу данные своего кода, а чем там макс занимается меня пока не волнует....

Да, многие исходники макса видно. Но пользы от них мало, да и грузится такой макс нааамного дольше обычного.
При тестировании и отладке я использую 2009 макс 32 бит. Грузиться быстро (быстрее 2012), а 32бит позволяет изменять код "на ходу", во время остановки в точках Breakpoint.
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






2 страниц V   1 2 >
Fast ReplyReply to this topicStart new topic

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29/03/2024 - 01:59