dllVSBlitz
Вложений: 2
Если кого-то интересует: простой тест на скорость выполнения dll-ки и стандартной блицовской команды (вычисления расстояния между объектами). Нужно просто запустить пример и напишет, кто больше времени занял. У меня на компе длл-ка то выигрывает, то проигрывает, то одинаково. У кого-то по-другому?
|
Re: dllVSBlitz
Цитата:
debuger отключить надо. |
Re: dllVSBlitz
Гы, нашел что сравнивать, либа в данном примере и не будет выигрывать ибо расчеты примитивные и выполняются что в Блице, что в либе одним и тем же способом.
Преимущество в скорости будет, если расчеты действительно сложные и требуют оптимизации, которую делает интеловский компилятор, или возможности языка. |
Re: dllVSBlitz
согласен с Cyan
|
Re: dllVSBlitz
2Cyan: Так может ты предоставишь мне такой тест? Мне интересно посмотреть разницу в скорости.
Да, и еще: как использовать dll-ки, написанные с помощью Delphi (6) ? Вот, например: Код:
|
Re: dllVSBlitz
Vyacheslav
создавать .decls файл в любом случае надо можно посмотреть как выглдядит имя функции через depends (ето тулза от MSVS) |
Re: dllVSBlitz
1. Что такое фейковые расчеты?
2. depends - она есть в MS VS 2005? Где ее можно найти в файлах? 3. Как работает CallDLL в Блице? |
Re: dllVSBlitz
Цитата:
3. Очень просто. Если смотреть по твоему примеру. В нём лучше поставить isRus: integer. Компилиш пример в дллку. Создаёш деклс, пример оформление есть в папке Юзерлибс. Описуеш свою ф-ю в деклсе GetSomeText$(isRus%):"_GetSomeText@4" и в блитце пишеш Статус = GetSomeText(1) |
Re: dllVSBlitz
2Render: Откомпилированная dll-ка из Visual Studio 2005 отлично в Блице работает, а вот из Delphi никак не хочет. Скорее всего, что я неправильно описываю ее где-то (может в decls). У тебя установлен Delphi? Можешь скомпилить простенькую dll-ку с последующей загрузкой в Блиц и привести код (плиз :)) ?
|
Re: dllVSBlitz
скорее имя функции другое
|
Re: dllVSBlitz
2jimon: Можно тыкнуть пальцем, где неправильно? :) Т.е. я хочу практический урок...
|
Re: dllVSBlitz
Да нет, в коде либы ошибок нет, скорее всего деклс неправильно написал ты, вот так надо:
.lib "НазваниеЛибы.dll" GetSomeText$(isRus%) и декорирование имени (_@Size) не обязательно. ЗЫ CallDLL не юзай - это атавизм старых версий. У тебя кстати какой версии Блиц? |
Re: dllVSBlitz
2Cyan: Thank's, ща попробую переделать. Блиц версии 1.98. А что такое декорирование? _@Size?
|
Re: dllVSBlitz
Декорирование - принудительная установка некоторых параметров линковки, а именно - имени и размера параметров в байтах:
_Имя@РазмерПараметров Но по-моему это только для либ написаных на С\C++, да и схема декорирования отличается у разных компиляторов. Юзается например для совместимости такой фичи С\С++ как перегрузка функций - одно и то же имя функции с разными параметрами не воспринимается линковщиком, поэтому применяется декорация типа: Функция@@XXYYZZ Функция@@XXYY Но если юзать модификатор extern "C", то компилятор не будет искажать имена функций. Насчет Дельфи - незнаю как там. |
Re: dllVSBlitz
надо еще вроде extern указывать после функции.
|
Часовой пояс GMT +4, время: 06:32. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot