Что нового

Создание быстродействующих 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
Репутация
413

Можно использовать Portable версию, она бесплатная и в ней всё работает у меня есть установщик PureBasic 4.51, если понадобится, могу скинуть.
 

Viktor1703

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

Если кто не знает, то dll скомпилированную с помощью C# можно сделать динамически подключаемой и работать будет как обычная dll, правда для её работы так же понадобится установленный .NET Framework.

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

AZJIO

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

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

Viktor1703

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

Да, оно.

AZJIO [?]
только касперский 7 скомпилированных примеров удалил.

Хм, есть такое дело, на форуме писали об этом, решение проблемы - сменить антивирус.

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