Quest3D - Русскоязычное сообщество

Quest3D => Программирование => Тема начата: Sqwer от 10 Июля 2009, 19:35:39



Название: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 10 Июля 2009, 19:35:39
Если кто делал каналы через SDK, поделитесь опытом. Расскажите на какой версии VS это можно сделать и как?

Хотябы написать канал, складывающий два входящего в него value.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 10 Июля 2009, 19:55:20
Я делал кастом ченелы с помощью сдк. Сделать это можно на любой версии VS, но для 2005 там предусмотрен специальный прожект визард, который значительно упрощяет создание проэкта, выставляет основные настройки, делает несколько объявлений классов и дефинишенов. Вобщем с ним удобнее.
У меня стоит 2008 студия и я когдато занялся переделкой этого визарда под неё, к сожалению синтатксис сильно изменился по сравнению с предидущей версией, поэтому в основном всё написано по новой, и реализованы далеко не все фишки старого визарда.
Если надо будет -- могу поделится, там даже целый мануал будет по встраиванию этого визарда )))


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 11 Июля 2009, 00:18:33
DimiS
Если есть, чем поделиться, против никто я думаю не будет  ;D


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: mixey от 11 Июля 2009, 01:14:00
О да! Я думаю, это просто отличное средство для новых возможностей! Так что нужен хелп по этому делу!  :)

И Сорри за оффтоп, но DimiS, скажите где можно скачать нормальный VS 2008? (в ЛС, а то все-таки сообщение получиться с варезом :P)


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 11 Июля 2009, 11:00:24
Можно скачать на torrents.ru .

Проинсталил VS2005 PRO  пощёл согласно алгоритму описанному в Help SDK.
остановился на
Цитировать
Visual C++ Templates
Next you will need to copy the Visual C++ template into the correct directory.

Move or copy the "Quest3D Channel.awx" and "Quest3D Channel Dialog.awx" from the Quest3D SDK installation folder to the following folder:

"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template"

Please select the correct directory if you have installed Visual C++ on another drive or in another folder.

1 - я не нахожу файлы  "Quest3D Channel.awx" and "Quest3D Channel Dialog.awx"
2 - не нахожу "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template"

PS не ругайте меня сильно , я впервые с ВС сталкиваюсь.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 11 Июля 2009, 11:44:09
По поводу студии, сам я очень долго искал полную крякнутую версию, во многих местах находил ссылки на удалёные уже файлы, помню ток в одном месте таки наткнулся на подходящий мне вариант, правда с русским переводом  :D, это псц))) К сожалению сейчас уже не могу найти ссылки на то место. Но для работы с кастом ченелами в принципе хватает экспресс едишн -- это обрезаная по самые яйса официально бесплатная версия для ознакомления и обучения.

Для 2008-ой студии должна подойти такая структура размещения файлов ченнел визарда http://ifolder.ru/13056941 (добавил ещё во вложения на форуме)
Все файлы кроме vc.vsdir из папки vcprojects, должны переписаться прямо в папку инсталяции студии без каких либо проблем. А вот vc.vsdir может различатся для разных версий студии, он у вас уже существует и его можно смотреть как текстовый файл. Главное что вам нужно с ним сделать -- это добавить строчку "Quest3D|{1B027A40-8F43-11D0-8D11-00A0C91BC942}|#1046|70" Если присмотреться к структуре этого файла то вы поймёте что в начале там идёт объявление разных категорий прожект визардов, а потом объявление прожект визардов не вошедших в те категории. Своей строкой мы объявляем ещё одну категорию, я её добавлял после объявления всех стандартных студиевских категорий.
Поидее всё, это должно работать для 2008 студии, на всякий случай сделайте бекап vc.vsdir -- в случае чего сможете откатить изменения. Теперь создавая новый проект у вас должна быть опция создания квестового ченнела.

Теперь пример -- http://ifolder.ru/13057358 Солюшен создан для 2008-ой студии. Название немного не соответствует тому что он делает, когда создавался прожект этого ченнела, то он планировался работать по другому. Это ченел с базовым типом текст, он возвращяет список всех уникальных идишников USB флеш девайсов воткнутых сейс в комп. Ну т.е. обычных флешек, кард ридеров и проч. Это делалось на заказ, и мне впадлу сейчас выдумывать отдельный пример))

Ну пока всё, ознакамливайтесь)) Чую, что если никто из вас до этого студию в глаза не видел, то будет весело)))

П.С: mixey, можеш обращятся ко мне на ты, мне так буде проще  ;)


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 11 Июля 2009, 11:51:01
DimiS

у меня установленна Microsoft Visual Studio 2005
с ней могу работать? с чего начать? какие первые телодвижения делать?


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 11 Июля 2009, 11:55:51
Можно скачать на torrents.ru .

Проинсталил VS2005 PRO  пощёл согласно алгоритму описанному в Help SDK.
остановился на
Цитировать
Visual C++ Templates
Next you will need to copy the Visual C++ template into the correct directory.

Move or copy the "Quest3D Channel.awx" and "Quest3D Channel Dialog.awx" from the Quest3D SDK installation folder to the following folder:

"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template"

Please select the correct directory if you have installed Visual C++ on another drive or in another folder.

1 - я не нахожу файлы  "Quest3D Channel.awx" and "Quest3D Channel Dialog.awx"
2 - не нахожу "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template"

PS не ругайте меня сильно , я впервые с ВС сталкиваюсь.


для 2005-ой я интегрировал этот визард тоже долго и муторно, в хелпе помоему откровенная херня написана, или для версии студии ещё более ранней. И было это почти год назад, на работе с которой я ушёл. Сейчас у меня нету 2005-ой студии, поэтому помочь смогу только советами. Если есть желание покопайся в файлах студии, посмотри как там сделаны эти визарды. В качестве наводки могу сказать что там дето в сдк лежит некое install.exe после запуска которой у меня в корне диска C: появилась парочка файликов которые дето надо было подсунуть студии, а гдето надо было подсунуть темплейты и какие то из файликов которые лежали рядом с инсталом.... А если нету желания ковырятся в этом, то инсталь и себе 2008-ую, будем все вместе там ковырятся :)


да, и ещё раз напомню, делать кастом ченелы можно и без визарда, просто больше ручной работы. Вам нужно будет создать новый прожект, желательно пустой, добавить туда описание класса для своего ченела, объявить там несколько структур, вобщем можете брать темплейты из сдк и лепить по образу и подобию. Важный ньюанс -- каждый ченнел должен иметь свой уникальный GUID, его нельзя просто скопипастить из примера(ну можно но только один раз :) -- не должно быть ченнелов с одинаковым гуид-ом) Существует тулза которая умеет его генерить, когдато встречал в инете, также это поидее умеет делать сама студия. В визарде он генерится автоматически, скриптом.

ещё кое что вспомнил :) Тот хелп всё таки не совсем бесполезен -- там описано как прописывать пути к квестовой сдк, не забудьте это сделать)) Скриншоты там конешн устарели слегка, но думаю разберётесь. Без этого не будет компилится пример


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 11 Июля 2009, 14:45:44
полуилось сделать кастомный канал на ВС2005 ПРО


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 11 Июля 2009, 20:30:31
У меня установлен Quest3D 4.3 2005 Beta 6

при компилировании, студия выдает ошибку:
Error    1    fatal error C1083: Cannot open include file: 'Act_New.h': No such file or directory    C:\q3dsdk\include\A3d_List.h    24   

Файл Act_New.h в SDK Quest3D 4.3 2005 Beta 6 отсутствует
то есть после распаковки SDK этого файла нет...

пробовал подменить таким же файлом из Quest3D 4.0 появилась другая ошибка, связанная с тем, что не может найти какую-то там библиотеку.
 ???


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 13 Июля 2009, 10:11:30
у меня версия квеста 4.2.2, там есть этот Act_New.h Хотя я точно помню, что когда то я сталкивался с подобной проблемой -- в хедере из сдк инклудится файл которого в сдк нету. Тогда я это решил закоментировав строчку в которой инклудился недостающий файл. В твоём случае это тоже должно сработать, Act_New.h содержит пару макросов чисто для дебага и отлова потерь памяти, тебе это пока не надо.

Но мне кажется что подставив этот файлик из другой версии, ты уже решил проблему. Сначала компилируется весь код и находят синтаксические ошибки в коде, в том числе и инклуды разнообразные. А когда уже всё откомпилилось начинается сборка -- это собирание в кучу всех библиотек и линкование их друг к другу. Так вот откомпилировалось у тебя всё нормально, т.е. ошибка с библиотекой у тебя так или иначе появилась бы как только ты исправил все ошибки компиляции.

Опиши подробнее что за ошибка с библиотекой


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 13 Июля 2009, 10:16:20
Error   1   fatal error LNK1104: cannot open file 'c:\code\Q3D_Crt\cr80_Q3D.lib'   ChannelWizard1   

У меня такой папки нет.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 13 Июля 2009, 10:37:20
яхз чё это такое, раньше никогда не сталкивался, мне кажется это могут быть какие то изменения в сдк для версии 4.3 Я бы тебе посоветовал пока установить гденить отдельно старую сдк (я не заметил изменений в версиях 4.1 - 4.2) и настроить студию пока на неё. И попробовать пока поработать с ней. И я был бы тебе благодарен если бы ты какнить выслал мне новую сдк :) поковыряю.
Кстати, а что ты пытался откомпилить?


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 13 Июля 2009, 10:53:32
Я пытался пустой канал скомпилировать... может я не прав?
SDK Quest3D 4.3 2005 Beta 6
Часть первая


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 13 Июля 2009, 10:54:31
SDK Quest3D 4.3 2005 Beta 6
Часть вторая


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 13 Июля 2009, 11:06:54
за сдк спасибо.
Ну а пустой ченел ты каким образом получил? моим визардом, ихним визардом, переделал какой то темплейт или экзампл?


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 13 Июля 2009, 11:10:23
ихним визардом  :-\
просто создал новый проект и нажал Build


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 13 Июля 2009, 11:15:11
можеш прислать архивчик с этим прожектом? гляну чё там в настройках


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 13 Июля 2009, 11:47:17
Solution Configurations Debug - все нормально!
Solution Configurations Release - все плохо! (Error   1   fatal error LNK1104: cannot open file 'c:\code\Q3D_Crt\cr80_Q3D.lib'   ChannelWizard1)


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 13 Июля 2009, 12:02:02
Ruslan
вечерком копаться буду с СДК.
Далеко не уходи =)


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 13 Июля 2009, 14:31:00
Вобщем мы с Ruslan-ом пообщялись в аське и выяснили что такая проблема возникает у тех кто пользуется SDK Quest3D 4.3 2005 Beta 6 Там нехватает парочки файликов, парочка лишних, и в одном какая-то левая херь из-за которой и появлялась эта проблема. Может быть это ещё не всё))) и может быть это не только в этой версии сдк  :D

в инклудах не хватает Act_New.h и EngineListener.h, зато там есть два лишних .lib файла. А в A3d_List.h нужно закоментить такой кусок
Код:
#ifndef _DEBUG
#pragma comment (lib,"c:\\code\\Q3D_Crt\\cr80_Q3D.lib")
#pragma comment (lib,"c:\\code\\Q3D_Crt\\cp80_Q3D.lib")
#pragma comment (lib,"c:\\code\\Q3D_Crt\\cm80_Q3D.lib")
#endif


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 14 Июля 2009, 02:34:24
DimiS

А у меня было так при повторном инсталировании СДК и ВС2005.

1. Сношу полностью ВС2005 и СДК
2. Устанавливаю ВС2005
3. Устанавливаю СДК
4. Создаю папку C:\Program Files\Microsoft Visual Studio 8\VC\vcprojects\Quest3d и закидываю те секретные файлики из С:\
- ChannelWizard.ico
- ChannelWizard.vsdir
- ChannelWizard.vsz
5. Запускаю ВС
6. Указываю путь к "инклудам" и "либам" через тулс-опции-прожект и солюшнс-С++ дирикторис .
7. Создаю новый проект.
8. попытка компилирования выдаёт ошибку

 
Цитировать
Depending of the Version of C++ you use, you can get this error. This means, that the Version YOU use is newer then the one, the template was created for.
Что в переводе на турецкий: вы что! :P версия визарта не совпадает с версией вашей студии.

Возник вопрос: а как исправить это дело!?
Решение проблемы на 13 шаге.
9. Руководствуясь сообщением DimiSа
Цитировать
В качестве наводки могу сказать что там дето в сдк лежит некое install.exe после запуска которой у меня в корне диска C: появилась парочка файликов которые дето надо было подсунуть студии,
Удаляю с С:\ эти секретные файлы и пытаюсь их сгенерировать вновь. - Ничего не получается, они не создаются.
10. Возвращаю эти секретные файлы из C:\Program Files\Microsoft Visual Studio 8\VC\vcprojects\Quest3d.
11. Удаляю папку C:\q3dsdk\Wizard\Templates \VS71 и жму по адресу  C:\q3dsdk\Wizard\Dll инстал.
12. создаю проект и возникает  уже другого рода ошибка. в переводе на турецкий: А ГДЕ ЖЕ C:\q3dsdk\Wizard\Templates \VS71!!!!!!!

и тут всё стало ясно =)
13. Замещаю содержимое по адресу C:\q3dsdk\Wizard\Templates \VS71 содержимым по адресу C:\q3dsdk\Wizard\Templates \VS80.
14. Компилю код: всё без ошибок, мы получили пустой канал.

Проект с этим каналам публикуется без ошибок

Версия Квеста 422
Версия студии VS2005 Pro


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 14 Июля 2009, 11:41:08
видимо у каждого свой путь к нирване ;D у всех разные проблемы возникают при работе с сдк, и у всех разные пути решения. Ruslan, я так понял вобще никаких лишних телодвижений не делал по установке визарда, просто проинсталил и оно работает  :)


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 14 Июля 2009, 11:45:27
DimiS
а теперь, можно вас спросить о семантике языка

Например написать канал, складывающий два вектора?


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 14 Июля 2009, 12:00:22
я бы такую задачу разделил на три этапа:
1. Нужно унаследовать базовый тип своего канала от вектора, и разобратся какая функция у него будет вызываться для получения значения вектора.
2. Нужно создать два чаилд линка, куда можно будет подключать векторы, и разобраться как спрашивать у них значение (скорее всего той же функцией которой мы будем отдавать значение своего ;))
3. Реализовать необходимые нам вычисления, в необходимом для этого месте (имхо в той самой функции что отдаёт значение вектора)

В принципе всё это описано в хелпе по сдк, будут какие то более специфичные вопросы -- обращяйся


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Sqwer от 14 Июля 2009, 12:06:02
DimiS спасибо

А поповоду их хелпа - это откровенная лажа.
В нормальных хелпах разбирают 3-5 примерчиков.

А в этом я вижу только: как создать пустой канал и референсы по свойствам команд.

Мне как человеку не знающему структуру очень сложно разбираться, а тем кто вперве программирует на языке выс уровня - наверное ещё тяжелее.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 14 Июля 2009, 16:51:56
DimiS Спасибо за помощь!

Если операция сложения для типа Vector перегружена (я надеюсь) то можно просто  VectorNew = Vector1+Vector2


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 14 Июля 2009, 17:17:05
помоему не перегружена
Кстати для работы с векторами и матрицами в квестовых ченелах прийдётся ещё скачать DirectX SDK (http://www.microsoft.com/downloads/details.aspx?familyid=5493F76A-6D37-478D-BA17-28B1CCA4865A) Даю ссылку на 9 версию потому что не уверен что 10 сдк подойдёт, но точно знаю, что для работы с квестовой сдк её достаточно


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 14 Июля 2009, 21:27:43
Установил  DirectX SDK
пробовал компилировать пример ODE_BodyCollision
возникла ошибка:
Error   1   fatal error C1083: Cannot open include file: 'Aco_DX8_DirectGraphics.h': No such file or directory   c:\q3dsdk\samples\ode_bodycollision\stdafx.h   27

Такого файла у меня тоже нет.
Подозреваю, что это не последний файл, которого я не досчитаюсь.  :-\
Скиньте пожалуйста СДК 4.2.2 может с этим получится...


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 15 Июля 2009, 00:46:57
без паники! 8) ни у кого нету этого файлика
этот ченел писался ещё во времена динозавров, ещё на 2003-ей студии, и с тех пор сдк немного переделывалась. Только пример никто не подгонял под новые версии. Aco_DX8_DirectGraphics.h теперь зовётся Aco_DX8_Direct3D.h, поменяй в 27-ой строчке файлика stdafx.h
Далее он тебе скажет что не может найти d3dx8.lib Оно и понятно, ведь стоит 9-ая сдк. Лезем в Configuration Properties | Linker | Input и в дополнительных зависимостях меняем "8" на "9" у d3dx8.lib
Потом оно скажет что не может прочитать некое LIBC.lib Гугл рассказал мне, что эта проблема возникает при портировании проектов написаных в 2003-ей студии в более новые её версии. Наш случай. Лечится это так: опять лезем в Configuration Properties | Linker | Input и в поле Ignore specific library прописываем её родимую -- LIBC.lib

С этим примером у меня больше проблем не возникло. А вот когда я попробовал скомпилить ODE_World, то там всё в итоге упёрлось в обращение к ченнелам, инклудов для которых в сдк нет... А вот у разработчиков то они точно были, как и много других полезных инклудов для разнообразных ченелов. Ток чё они их зажали для меня до сих пор загадка.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 15 Июля 2009, 07:50:09
DimiS
Спасибо тебе огромное, за то, что помогаешь!
Сделал как ты сказал, возникли другие ошибки, извиняюсь за мусор:

Warning   1   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   19   
Warning   2   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   58   
Warning   3   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   113   
Warning   4   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   114   
Warning   5   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   117   
Warning   6   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   121   
Warning   7   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   124   
Warning   8   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   128   
Warning   9   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   131   
Error   10   error C2065: 'i' : undeclared identifier   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   562   
Warning   11   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   931   
Warning   12   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1002   
Error   13   error C2065: 'k' : undeclared identifier   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1007   
Warning   14   warning C4995: 'strcpy': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1050   
Warning   15   warning C4995: 'strcat': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1053   
Warning   16   warning C4995: 'strcat': name was marked as #pragma deprecated   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1054   
Error   17   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1135   
Error   18   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1136   
Error   19   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1138   
Error   20   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1139   
Error   21   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1141   
Error   22   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1142   
Error   23   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1144   
Error   24   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1145   
Error   25   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1147   
Error   26   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1148   
Error   27   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1150   
Error   28   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1151   
Error   29   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1213   
Error   30   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1214   
Error   31   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1216   
Error   32   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1217   
Error   33   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1219   
Error   34   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1220   
Error   35   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1222   
Error   36   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1223   
Error   37   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1225   
Error   38   error C2228: left of '.y' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1226   
Error   39   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1228   
Error   40   error C2228: left of '.z' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1229   


кусок файла StdAfx.h

#include <windows.h>
#include "Aco_Float.h"
#include "Aco_Matrix.h"
#include "Aco_Vector.h"
#include "Aco_DX8_Direct3D.h"
#include "Aco_DX8_D3DDeviceUse.h"
#include "..\\ODE_World\\ode.h" - нет его у меня
#include "..\\ODE_World\\ODE_World.h" - тоже нет (вообще в данном случае правильно записан путь? по идее мы уже перешли в этот каталог? )
#include "Aco_DX8_CollisionObject.h"

а еще, по этому пути ..\\ODE_World\\  у меня лежит либа ode.lib
 ::)

На оффоруме, человек задавал вопрос по поводу отсутствия файла Aco_DX8_DirectGraphics.h ему ответили:
Its in the sdk-installfolder\include. I'm not going to send it since I am certain its there. If its not, you got a faulty Quest3D version/installer.

я уже было подумал, что нормальная СДК, только у оф-пользователей...

Почему я доклепался к "этому примеру"? наверное потому, что выбирать не из чего...


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 15 Июля 2009, 10:10:43
Ошибки типа:
Цитировать
Error   10   error C2065: 'i' : undeclared identifier   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   562
возникли потому что раньше стандарты языка видимо как-то отличялись от нынешних, и объявив переменную в одном for-е они могли потом её юзать в соседнем не объявляя. Сейчас такие переменные считаются локальными для того фора в котором объявлены. Вобщем тебе надо в местах с такой ошибкой конструкцию типа
Цитировать
for (i=0; i<...
заменить на
Цитировать
for (int i=0; i<...
т.е добавить объявление типа переменной i
Чёт забыл про этот ньюанс когда писал предидуший пост

Цитировать
Error   17   error C2228: left of '.x' must have class/struct/union   c:\q3dsdk\samples\ODE_BodyCollision\ODE_BodyCollision.cpp   1135
Такая ошибка возникает потому, что директХ сдк ты установил, а пути к ней не прописал :P Для инклудов C:\Program Files\Microsoft DirectX SDK (November 2007)\Include , для либ C:\Program Files\Microsoft DirectX SDK (November 2007)\Lib\x86 У тебя путь конечно может отличатся, особенно в названии сдк.


#include "..\\ODE_World\\ode.h" - нет его у меня
#include "..\\ODE_World\\ODE_World.h" - тоже нет (вообще в данном случае правильно записан путь? по идее мы уже перешли в этот каталог? )

а еще, по этому пути ..\\ODE_World\\  у меня лежит либа ode.lib
 ::)
Почему это нету? в твоей сдк есть, я проверил даже специально. Это просто путь указанный относительно директории с прожектом который компилится. А либа пусть лежит, она ещё понадобится для компоновки того ченела что ты щяс мучаеш.

На оффоруме, человек задавал вопрос по поводу отсутствия файла Aco_DX8_DirectGraphics.h ему ответили:
Its in the sdk-installfolder\include. I'm not going to send it since I am certain its there. If its not, you got a faulty Quest3D version/installer.

я уже было подумал, что нормальная СДК, только у оф-пользователей...
Ну я же уже объяснял по поводу этого файлика, его переименовали, а тот чувак ответил просто "на отебись", так бывает с сапортом))

Почему я доклепался к "этому примеру"? наверное потому, что выбирать не из чего...
Вобще то примеров ValueToText и TextToValue вполне достаточно для того чтобы начать, а ты сейчас уже полез в дебри. То, чем мы сейчас занимаемся -- это какие то археологические раскопки. И те крупицы действительно полезной информации, которые ты вынес из попыток скомпилировать этот ченел, можно получить гораздо более простым и эффективным путём, просто начав писать что-то самому. Вот как Sqwer например.


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 15 Июля 2009, 11:16:28
Пример ODE_BodyCollision - в топку   :(


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: IYV от 17 Июля 2009, 08:25:17
Может быть не в тему,но возможно ли встроить вот это http://www.fantastiqui.com/download.html чтоб использовать в приложении флеш ролики?


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: Ruslan от 17 Июля 2009, 09:05:10
Скорее всего, возможно.
мне вот хотелось бы SpeedTree  прикрутить, конечно, если это возможно...


Название: Re: [общее]как сделать свой канал через SDK?
Отправлено: DimiS от 17 Июля 2009, 13:50:32
Может быть не в тему,но возможно ли встроить вот это http://www.fantastiqui.com/download.html чтоб использовать в приложении флеш ролики?

Да, думаю возможно. Я себе это вижу как ченел с базовым типом Texture, ну а дальше уже средствами этой сдк надо будет только анимировать её.