1. Скачать его, хоть русский хоть английский 2. Установить, эт само собой 3. Посмотреть ВСЕ демо которые там есть. Грузим демо, жмем пробел и смотрим что делает, как поняли что делает то жмем еск и пытаемся понять логику демки.
Не совсем так, для файлов компоновки нужны строгие пути, для компиляторов, а для самой загрузки это не важно. Дабы не трогать компиляторы С++ и файлы компоновки к которым нужны те самые строгие пути, рассмотрим линковку либ на другом ЯП. Вот глаз падает на Дельфина.
Накатаем простейшую либу:
Code
library MyLib;
uses SysUtils, Classes;
function Algebra(x,z: real; metod: integer):Double; stdcall; var d: Double; begin case metod of { d взят для того чтобы избежать переполнения, хотя при умножении тут это не поможет))) но все же не стоит забывать о багах. Создадим видимость что мы о них помним } 0: d:=x+z; 1: d:=x-z; 2: d:=x*z; 3: if z<>0 then d:=x/z; else d:=0; end; result:=d; end;
exports Algebra;
begin end.
Важно помнить, что если при разработке dll использовалось соглашение stdcall, то и при её вызове должно использоваться тоже stdcall. Это делает возможным работать с нашей Dll другим программам используя данное соглашение.
Соберем простейший проект для статической загрузки dll и проверим, так ли особо нужны строгие пути.
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
function Algebra(x,z: real; metod: integer):Double; stdcall; external 'project1.dll'; {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Form1.Caption:=FloatToStr(Algebra(5,3,2)); end;
end.
Пытаемся запустить и у нас вылетает ошибка:
Все правильно, ведь библиотека находится в другой папке. Но мы ее не будем кидать в нашу папку с этим проектом, нет нет, мы ее кинем в папочку WINDOWS и теперь пробуем запустить. Вуаля проект запустился. Тоже самое будет если ее кинуть в windows/system windows/system32 и ряд других папок. Именно об этом я и говорил.
Не Важно, статическая либа или динамическая. Все либы можно слить в эти папки, и тогда у Вас останется голый ехе в Вашей папке. Как я и говорил.
Теперь о недостатках статических либ. 1) Если необходимых программе функций и библиотек много, то процесс их загрузки может занять значительное время. Однако вызовы будут происходить при работе быстрее, так как либа уже подгружена в память. 2) Функции будут отнимать оперативную память, причем все и одновременно, хотя программе возможно они не нужны в один и тот же момент времени. 3) Если какая-нибудь из необходимых библиотек отсутствует, то загрузка программы станет невозможна, т.е. таким образом невозможно реализовать, например, механизм плагинов. Поэтому следите что Вы поставляете в комплекте все файлы. А при распаковке уже решайте куда Вам их кидать. 4) В конце концов, компоновщику при компоновке программы понадобятся .LIB файлы на каждую подключаемую библиотеку. Наверное именно это и имел ввиду Уважаемы собеседник anisimov.
Ну что же, поедем дальше, что кота тянуть .. э .. за... хвост!!!
И так попробуем подгрузить либу динамически, пишем проект, дамы и господа.
Комментарии на русском посмотрите в папке с прилагаемым архивом) лень переписывать). Сразу предупреждаю, если dll не будет в папке с проектом или в папках перечисленных выше) такие как windows, то будет ошибка чтения). А если нашу dll скинуть в папку windows то прога все нормально посчитает). Если не хотите эрроров то выставит он еррор в 0.
Ну и на последок, как видим для нашей самописной длл мы не писали ни каких файлов компановки, так как: Мы знаем имена функций непосредственно, и знаем какие параметры она использует.)))
Всем счастливо прочитать, лью архив иду пить чай.
Всем с уважением желаю доброго времени суток. Дернем по чайку коллеги.
Prooject.rar - тут файлы проектов Din.rar - скомпилированный проект динамической загрузки Stat.rar - скомпилированный проект статической загрузки dll.rar - скомпилированная Dll.
Ничего личного, но я бы не стал играть в игру в которой на скрине некий символ весьма похож на нацистскую символику. Не стал бы из уважения к ветеранам. На танке еще куда бы не шло, а так. но это конечно я... Удачи с проектом.
Окулист ненадо меня учить что делать!!!! у самого еще ничего нет готоыого а учить уже умеет!!!!!!!!!!! вот нород повелся))) был бы я админом я бы тебя давно забанил!!!!!!!!!!!! хотя если захотю то весь ваш форум взламаю!!! anisimov, тебе я так понял психо терапевты нужны чтобы залечить травму глубокого детства!!!!!! TrueIfrit, намного лутче тебя!!!!!!!! я что ниясно написал что всему наючю если вы ничего не понимаете!!!!!!!!! cool cool cool
Во первых Вы не умеете читать даже по английски. Мой ник Вы прочли не правильно.
На счет "забанил", я не имею права обсуждать действия администрации и Вам не советую.
На счет взлома, я уверен Вы не то что эксплойты готовые использовать не умеете, но по уровню Вашего поведения Вы с актив XSS не справитесь) не говоря о скулях, а руткиты Вам кошмарам покажутся. Если Вы настолько разбираетесь в сетевой безопасности, то почему же я еще не забанен.
В общем, отправлю ка я Вас на воспитание в бан на 3 дня за оскорбления участников форума.
Ну может и не самый известный, однако самый опытный разработчик АИ является "Архитектор" из Матрицы. Он не только создал серию машин-роботов с АИ, которые по своим характеристикам интеллекта превосходят всех Терминаторов, но и создал уникальную модель мышления программ и взаимодействия их с матрицей-системой управления человеческого мышления.
Благодарности: 1. Спасибо всем с джабер канала, думаю еще месяца 2 и там будет сидеть вся основная тусовка, весь GCUP андеграунд. 2. Спасибо Vinchensoo, не один час мы с ним убили над обсуждением всего этого, спасибо что терпел мои заморочки. 3. Спасибо сестренке Настене, без тебя солнце ничего бы вообще не было, ты самое дорогое что у меня есть в жизни, давай поправляйся. 4. Спасибо администрации портала, за то что терпели мои капризы. 5. Спасибо моему чайнику и глобальной сети интернет, без Вас я бы тоже не справился. 6. Огромное спасибо Элизабет, моей малышке машинке. Именно она рендерила и исполняла эти непонятные наборы символов.
Урок 1:Добавляем свой автомобиль ( Автор: Akyltist )
Доброй ночи, уважаемые деволоперы. Сегодня Вас ожидает байка про то как сделать из фиата джип с характеристиками в стиле лучшего спорт кара. Началось все с того, что вечером мне пришло ЛС от одного из местных обитателей и чемпиона нескольких ралли. Имя его я выдавать не буду. Вопрос встал прямо, что делать, как быть с колесами у модели которую он подгружает. Не вставали они на место, чтож сказал я, и начали мы с ним колдовать. Закончив свое колдовство я начал оформлять эту тему, как выяснилось, что и он тоже закончил с этим возится. Это означает, что человек действительно разбирается в основах. Поэтому рад был помочь, и будем ждать цикл статей от него.
Ну чтож, вернемся к нашему крутому джипу. И так поехали!!!
Качаем с сети модельку машины без колес в *.X формате. Ну кому лень тот может воспользоваться архивом, ссылка на который находится ниже.
1. Добавляем на карту SkyBox. скрин 2. Даем ему имя Небо, как ни как мы русские люди. (В качестве теста юзаю русскую версию Радуги) 3. Картинку на небо можете выбрать любую)) какая понравится.
4. Добавляем на карту Terrain скрин 5. Название как видите тоже на русском 6. Добавляем второй террайн, но теперь уже Guardrail. См скрин
7. Добавляем G-Force (Силу гравитации), а то как мы без нее. скрин
Лирическое отступление: Давайте взглянем на иерархию объектов в конструкторе.
Продолжим:
9. Посмотрев на схему скидываем ресурсы по соответствующим папкам. В архиве они уже по ним расположены. 8. Добавим SkinMesh скрин
Немного поразмыслив.
Зачем я буду описывать добавление всех компонентов, в общем кладу демку вместе с ресурсами. Иерархия сохранена,просто копируйте ее в Радугу и будет Вам счастье. Всем спасибо. По всем вопросам прошу на канал в джаббер. Да Да, мы там есть). Адрес канала у меня в подписи.
Akyltist, почему такая большая разница билдов, аж 10 мб?
Инсталятор так ужал, при чем тот же rar ужимает только до 38 метров
Quote
А ну, попробуйте кто нибудь загрузить BoatDemo.3dr. У меня эта демка не грузится, вылетает ошибка. Может это только у меня такое, но на оригинальной английской версии все нормально работает.
Всем спасибо за приятные слова, могу гарантировать, скоро Вас приятно удивит мое очередное творение. Оно не относится к радуге, как к собственно и создаваемой мне игре, сохраню интригу, но могу сказать, что должен получится продукт высшего класса.)))
Хех, не думал что кто то запоет про линукс в смеси с геймдевом)). Сидел под разными осями. Первый раз все началось с ред хата, шел он на 7 болванках, автоматическая установка ядра, остальные компоненты ручками компилировали. Веселое время было. Потом настало время Генту, на ней первый раз пере собирал ядро, ось работает фантастически быстро на самом дохлом железе, но как недостаток, если что то добавляешь или убираешь, то практически все заново приходилось тогда делать. Потом дебиан, родной любимый дебиан на 25 двд дисков, да да, он и по сей день доступен. Не я конечно не ставил все))) я же не мазахист. Просто ядро дебиана кроме оптимизации и быстродействия с 1995 года не претерпело почти ни каких изменений и все пакеты которые идут с ним максимально под него заточены и с минимум ошибок. Как то даже стояла Мандрива 2005, но не долго, пакет очень легкий в освоении, хороший базовый комплект. Потом была фри бсд, но там сидел чисто под консолью, приходилось конечно иногда запускать кде, просто не любил с PuTTY работать на уровне консоли, SSH еще ладно, а вот команды телнета лежали в тхт файлике и распечатать их возможности не было)) хотя принтеры уже были лазерными). Поэтому приходилось вылазить с танка и идти под кде, но это бесценнейший опыт. Потом с линуксом практически не работал, за исключением Убинту 8.1 и 9.0. Штучка классная и удобная, хорошо под сервер пойдет, не хуже Сюси, но проблема с АТИ.
Как совет, поставить линукс можно. Создавать игры тоже)). Но если Вы не готовы изучать большие объемы информации, чтобы нормально под ним сидеть и творить, то это не для Вас. Понимая всю потенциальность рынка линукс, я предпочитаю работать под Вин системами. А портировать это уже второе дело.
Авторские Права: 3D Rad - С разрешения моего нового друга Фернандо Зенини, автора и идейного воплотителя этого конструктора игр, выкладываю русскую локализацию этой программы. Все авторские права сохраняются за автором. Лицензия не подлежит переводу, дабы использовать оригинал, ввиду возможной неправильной трактовки переводчиком.
Примечание: Поставил для теста на 3-х машинах, везде встало нормально! Напоминаю, что необходим установленный Директ Х.
Актуальные версии!
Скачать 3D Rad 6.41 NEW: Дабы беспрепятственно скачать 3D Rad 6.41: Пароль от архива: 111 Server
Не Актуальные версии!
Скачать 3D Rad 6.40: Дабы беспрепятственно скачать 3D Rad 6.40: Server Mirrors
Объект: SkinMesh. Версия: 3DRadPro_640_Rus Ошибка: Заключается в том, что при старте скомпилированного варианта, зависимости от SkinMesh не задействовались, и он оставался наместе для динамических объектов. Не верное определение для вызова функции при компиляции проекта, замена системной библиотеки для компилируемых проектов.
А можно поинтересоваться тут речь о Java или о Java Script? Если о втором, то тогда почему написано Java? Это ведь абсолютно разные вещи. А если речь все таки о Java, то ее знает во много раз народа больше чем AS3. Судя по друзьям с Хабры и ICFPC - Java за рубежом в разы популярнее чем в России. Однако учитывая то что Адоб плагин установлин почти у всех юзверей, а JRE, JDK, JRT у единиц то игру советую делать на флеш. Ну а если имеется все таки ввиду JavaScript то во первых нужно изменить опрос, так как Java и JavaScript не имеют между собой ни чего общего, и более подробно расписать, что представляет из себя игра, какие цели преследует.
API как в vkontakte в контакте ни когда не сидел, но видел там такую игру как Мафия или Бандиты, не знаю как точно, если игра такого типа то я бы лично использовал JS+XML+PHP+MySql. Тем более зная что автор темы владеет всем перечисленным.