Что нового

Создание быстродействующих DLL для вызова из AutoIt скрипта - какой язык выбрать

Suppir

Продвинутый
Сообщения
967
Репутация
62
Добрый день!

Понадобилось сделать для программы dll с несколькими функциями. Например, функция конвертации строки из DOS в ANSI (и наоборот), или функция поиска-замены текста. Эти действия быстрее выполняются в компилируемых языках, чем в скриптовых. Потом эти функции планирую вызывать из AutoIt с помощью dllCall().

В связи с чем возникло несколько вопросов:

1) какой язык лучше выбрать для создания dll ? Чтобы не было проблем с запуском у большинства пользователей windows. Наиболее известный c#, однако, насколько я слышал, в AutoIt можно вызвать функцию из c# только через интерфейс COM.
2) можете ли скинуть на примеры, как должен выглядеть скрипт AutoIt, вызывающий функцию из DLL (вызов функции, получения данных, возможные исключения и т.п.).

Спасибо.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
PureBasic - синтаксис бейсикоподобный, создание DLL-библиотек ни чем не отличается от обычного кодинга (т.е. элементарно). Работает весьма и весьма шустро (утверждается что код компилируется в машинный). Лучшей альтернативы для создания DLL-библиотек я просто не могу представить. :whistle:
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Kalisnik
purebasic платный :whistle:

а есть у вас какие-нибудь примеры создания dll на пурике? (и вызова их из Autoit)
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
В этой теме все весьма доходчиво и подробно расписано как о вызове dll так и о написании dll на PB... ;)
 

aak

Новичок
Сообщения
6
Репутация
3
Скорость работы откомпилированного кода зависит не от языка,а от компилятора, от его способоности оптимизировать генерируемый машинный код.Изучайте бенчмарки различных компиляторов (для разных языков в том числе). Если хотите С/С++, компилятор Visual Studio вроде себя неплохо зарекомендовал (читал где-то тесты).
 

Viktor1703

AutoIT Гуру
Сообщения
1 535
Репутация
410
Можно использовать Portable версию, она бесплатная и в ней всё работает у меня есть установщик PureBasic 4.51, если понадобится, могу скинуть.
 

Viktor1703

AutoIT Гуру
Сообщения
1 535
Репутация
410
Suppir [?]
Наиболее известный c#, однако, насколько я слышал, в AutoIt можно вызвать функцию из c# только через интерфейс COM.
Если кто не знает, то dll скомпилированную с помощью C# можно сделать динамически подключаемой и работать будет как обычная dll, правда для её работы так же понадобится установленный .NET Framework.

P.S. Здесь подробно рассказано как это сделать.
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Обновил файлик с предыдущего поста. Добавил исходники *.cpp и добавил пример с вызовом получившейся *.dll которая имеет 4 математические функции.
Всё что требуется: открыть *.cpp в "w:rofl:ev-C++" и скомпилировать.

Viktor1703 [?]
у меня есть установщик PureBasic 4.51
Дистрибутив 72 Мб на этой страничке, это оно? Скачал, интересная коллекция скриптов в комплекте с PureBasic, всё чётко работает, только касперский 7 скомпилированных примеров удалил.
 

Viktor1703

AutoIT Гуру
Сообщения
1 535
Репутация
410
AZJIO [?]
Да, оно.

AZJIO [?]
только касперский 7 скомпилированных примеров удалил.
Хм, есть такое дело, на форуме писали об этом, решение проблемы - сменить антивирус.

P.S. так как этот форум посвещён AutoIt, то касаемо вопросов про PureBasic - в личку. Да и теме мне кажется место в общении :smile:
 
Верх