Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Библиотеки

Библиотеки Сторонние библиотеки для Blitz

Ответ
 
Опции темы
Старый 26.02.2007, 19:51   #1
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
dllVSBlitz

Если кого-то интересует: простой тест на скорость выполнения dll-ки и стандартной блицовской команды (вычисления расстояния между объектами). Нужно просто запустить пример и напишет, кто больше времени занял. У меня на компе длл-ка то выигрывает, то проигрывает, то одинаково. У кого-то по-другому?
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 01:19   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: dllVSBlitz

Сообщение от Vyacheslav
...то выигрывает, то проигрывает, то одинаково...
фейковые расчеты проводить надо.
debuger отключить надо.
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 03:03   #3
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: dllVSBlitz

Гы, нашел что сравнивать, либа в данном примере и не будет выигрывать ибо расчеты примитивные и выполняются что в Блице, что в либе одним и тем же способом.
Преимущество в скорости будет, если расчеты действительно сложные и требуют оптимизации, которую делает интеловский компилятор, или возможности языка.
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 11:12   #4
jimon
 
Сообщений: n/a
Re: dllVSBlitz

согласен с Cyan
 
Ответить с цитированием
Старый 27.02.2007, 13:28   #5
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
Re: dllVSBlitz

2Cyan: Так может ты предоставишь мне такой тест? Мне интересно посмотреть разницу в скорости.

Да, и еще: как использовать dll-ки, написанные с помощью Delphi (6) ?

Вот, например:

 
library delphi_dll;

uses SysUtils, Classes;

function GetSomeText(isRus: Boolean): PChar; stdcall;
begin
  if isRus=true then
    Result := PChar('Рус')
  else
    Result := PChar('Eng');
end;

exports GetSomeText;

begin
end.
Как потом dll-ку загрузить в Блиц. Нужно ли создавать .decls-файл ?
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 17:58   #6
jimon
 
Сообщений: n/a
Re: dllVSBlitz

Vyacheslav
создавать .decls файл в любом случае надо
можно посмотреть как выглдядит имя функции через depends (ето тулза от MSVS)
 
Ответить с цитированием
Старый 27.02.2007, 18:10   #7
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
Re: dllVSBlitz

1. Что такое фейковые расчеты?
2. depends - она есть в MS VS 2005? Где ее можно найти в файлах?
3. Как работает CallDLL в Блице?
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 23:05   #8
Render
Знающий
 
Регистрация: 12.07.2006
Сообщений: 283
Написано 16 полезных сообщений
(для 32 пользователей)
Re: dllVSBlitz

Сообщение от Vyacheslav
2. depends - она есть в MS VS 2005? Где ее можно найти в файлах?
3. Как работает CallDLL в Блице?
2. Зачем оно надо. Єто уже на крайний случай когда ничего неизвестно о функции
3. Очень просто. Если смотреть по твоему примеру. В нём лучше поставить isRus: integer.
Компилиш пример в дллку. Создаёш деклс, пример оформление есть в папке Юзерлибс. Описуеш свою ф-ю в деклсе

GetSomeText$(isRus%):"_GetSomeText@4"

и в блитце пишеш
Статус = GetSomeText(1)
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 14:40   #9
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
Re: dllVSBlitz

2Render: Откомпилированная dll-ка из Visual Studio 2005 отлично в Блице работает, а вот из Delphi никак не хочет. Скорее всего, что я неправильно описываю ее где-то (может в decls). У тебя установлен Delphi? Можешь скомпилить простенькую dll-ку с последующей загрузкой в Блиц и привести код (плиз ) ?
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 15:04   #10
jimon
 
Сообщений: n/a
Re: dllVSBlitz

скорее имя функции другое
 
Ответить с цитированием
Старый 28.02.2007, 16:37   #11
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
Re: dllVSBlitz

2jimon: Можно тыкнуть пальцем, где неправильно? Т.е. я хочу практический урок...
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 17:17   #12
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: dllVSBlitz

Да нет, в коде либы ошибок нет, скорее всего деклс неправильно написал ты, вот так надо:
.lib "НазваниеЛибы.dll"
GetSomeText$(isRus%)

и декорирование имени (_@Size) не обязательно.
ЗЫ
CallDLL не юзай - это атавизм старых версий. У тебя кстати какой версии Блиц?
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 17:26   #13
Vyacheslav
ПроЭктировщик
 
Регистрация: 03.01.2007
Сообщений: 133
Написано одно полезное сообщение
(для 4 участников)
Re: dllVSBlitz

2Cyan: Thank's, ща попробую переделать. Блиц версии 1.98. А что такое декорирование? _@Size?
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 18:39   #14
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: dllVSBlitz

Декорирование - принудительная установка некоторых параметров линковки, а именно - имени и размера параметров в байтах:
_Имя@РазмерПараметров
Но по-моему это только для либ написаных на С\C++, да и схема декорирования отличается у разных компиляторов.
Юзается например для совместимости такой фичи С\С++ как перегрузка функций - одно и то же имя функции с разными параметрами не воспринимается линковщиком, поэтому применяется декорация типа:
Функция@@XXYYZZ
Функция@@XXYY
Но если юзать модификатор extern "C", то компилятор не будет искажать имена функций. Насчет Дельфи - незнаю как там.
(Offline)
 
Ответить с цитированием
Старый 01.03.2007, 01:30   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: dllVSBlitz

надо еще вроде extern указывать после функции.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:45.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com