|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Язык программирования PureBasic
Возможно не все знают что существует замечательный язык программирования, именуемый PureBasic.
Что в нем замечательного? А вот что: Он во первых не сложный и при этом достаточно мощный, что позволяет использовать PureBasic не только для обучения программированию, но и для разработки приложений, игр, библотек (dll и т. д.) и драйверов на профессиональном уровне. PureBasic имеет кроссплатформенную IDE (Windows, Linux, Max OS X как x86, так и x86, а также PowerPC), в которую входит редактор кода, редактор форм, компилятор и довольно мощный отладчик. Для PureBasic написано много библиотек функций почти на все случаи. И не обращайте внимание на слово "Basic". Это язык простоты бейсика и возможностей Си. Еще одной особенностью PureBasic является то, что программы компилируются в native-код и не требуют среды исполнения (типа runtime или .NET Framework) что облегчает распространение программ. И при это размер исполняемых файлов реально мелкий - от 2 КБ. Скрин IDE с загруженной программой. |
#3
|
||||
|
||||
Драйвера на бейсике
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
Цитата:
Лучше PureBasic чем Delphi или хуже зависит от задачи. Например дельфи 7 только для Windows x86 и с его помощью даже приложение для Windows x64 не скомпилировать. А на PureBasic можно. Также PureBasic поддерживает компиляцию для Linux, MaxOS X и AmigaOS, а дельфи нет. Разработка DLL в дельфи, по сравнению с PureBasic не имеет преимуществ. ИМХО в PureBasic проще. А вот что касается разработки драйверов, то тут у дельфи облом. Есть конечно методы, но там еще те костыли. А в PureBasic довольно просто писать дрова и компилируются они из IDE без всяких батников и подмены линкера (у PureBasic COFF-формат объектных файлов и стандартный линкер). Примеры драйверов на PureBasic. Для примера, код драйвера на дельфи. Код:
unit tiny; interface TYPE UShort = Word; // unsigned 16-bit Short = Smallint; // signed 16-bit ULong = Cardinal; Size_T = Cardinal; PVoid = Pointer; NTStatus = ULong; CShort = Short; TYPE PUNICODE_STRING = ^UNICODE_STRING; UNICODE_STRING = packed record Length : UShort; MaximumLength : UShort; Buffer : PWideChar; end; CONST NTOSKrnl = 'ntoskrnl.exe'; CONST IRP_MJ_MAXIMUM_FUNCTION = $1B; TYPE PDRIVER_OBJECT = ^DRIVER_OBJECT; DRIVER_OBJECT = packed record csType : CShort; csSize : CShort; DeviceObject : Pointer; // SHOULD BE PDEVICE_OBJECT Flags : ULong; DriverStart : Pointer; DriverSize : ULong; DriverSection : Pointer; DriverExtension : Pointer; // SHOULD BE PDRIVER_EXTENSION DriverName : UNICODE_STRING; HardwareDatabase : PUNICODE_STRING; FastIoDispatch : Pointer; // SHOULD BE PFAST_IO_DISPATCH DriverInit : Pointer; // PDRIVER_INITIALIZE DriverStartIo : Pointer; // PDRIVER_STARTIO DriverUnload : Pointer; // PDRIVER_UNLOAD MajorFunction : array [0..IRP_MJ_MAXIMUM_FUNCTION] of Pointer; end; CONST STATUS_SUCCESS = NTStatus( $00000000 ); function DriverEntry( const DriverObject : PDRIVER_OBJECT; const RegistryPath : PUNICODE_STRING ) : NTStatus; stdcall; implementation function DbgPrint( const Format : PAnsiChar ) : NTStatus; cdecl; external NTOSKrnl name '_DbgPrint'; procedure ADriverUnload( const DriverObject : PDRIVER_OBJECT ); stdcall; begin DbgPrint('Tiny: DriverUnload()'); end; function DriverEntry; begin DriverObject^.DriverUnload := @ADriverUnload; DbgPrint('Tiny: DriverEntry()'); Result := STATUS_SUCCESS; end; end. Код:
Declare DriverEntry(*DriverObject, *RegistryPath) *A=@DriverEntry() !jmp [p_A] IncludePath #PB_Compiler_Home+"DDK\" XIncludeFile "ntddk.pbi" XIncludeFile "ntstatus.pbi" XIncludeFile "ntfunct.pbi" Procedure DriverUnload(*DriverObject.DRIVER_OBJECT) DbgPrint(@"PureBasic: DriverUnload()") EndProcedure Procedure DriverEntry(*DriverObject.DRIVER_OBJECT, *RegistryPath.UNICODE_STRING) DbgPrint(@"PureBasic: DriverEntry()") *DriverObject\DriverUnload = @DriverUnload() ProcedureReturn #STATUS_SUCCESS EndProcedure Попробуйте скомпилировать драйвер в дельфи. А в PureBasic без заморочек компилируется из IDE. Просто вставьте код драйвера в редактор IDE и скомпилируйте. Нужно всего лишь в меню "Компилятор" щёлкнуть по пункту "Создать драйвер" и если в коде нет ошибок, то драйвер будет создан в указанной папке. Последний раз редактировалось fred_pb, 09.04.2014 в 21:58. |
#8
|
||||
|
||||
На FASM можно и под линух и под х64 и под АРМ [sarcasm]конпелировать[/sarcasm] хоть драйвера, хоть что; и ассемблер "проще" бейскиа, а с макросами так вообще бомба.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
|||
|
|||
Вот еще одно преимущество PureBasic - он использует FASM в процессе компиляции и позволяет заюзать почти все возможности этого асма, такие как асм. инструкции, директивы, макросы и т. д.
|
#10
|
||||
|
||||
Цитата:
Цитата:
А теперь главный вопрос: что мне делать с моими исходниками на Delphi? Предположим, что я купился и купил. Дальше-то что? Переписывать всё на PureBasic? Мну разорится. Не стоит путать форумы с богадельнями. © Bargest |
#11
|
|||
|
|||
Цитата:
Цитата:
В PureBasic создать драйвер во много раз проще. Цитата:
Эта тема создана для расширения кругозора, а не для переманивания прогеров на другой ЯП. |
#12
|
||||
|
||||
Цитата:
Что касается бейсика - сам язык убог до невозможности, писать на нем программы жутко неудобно из-за некоторых его концепций. И не думаю, что PureBasic сравнится по стандартному функционалу с каким-нибудь XE5 со всеми их жестами, огнеобезьянами, 3Д-формами и т.д. Также делфи сейчас компилирует под IOS, в скором времени обещают Linux и Android. Писать же драйвера на бейсике - мсье, вы знаете толк в извращениях... Учитывая, что весь MSSDK на Си и все примеры на Си. Пока что единственный плюс PureBasic'а, который я вижу - компиляция под Mac и Linux. Остальное играет не в его пользу. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 10.04.2014 в 01:50. |
#13
|
||||
|
||||
РугеВасик использует FASM`ик?
Ивзиняйте, не удержался — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 10.04.2014 в 08:17. |
#14
|
|||
|
|||
Цитата:
Если уж обобщать как вы это делаете, то можно сказать что паскаль (а дельфи это паскаль) это учебный язык и ни на что другое кроме обучения он не годен. Но вы же понимаете что это не так. Тоже и с PureBasic. Сначала изучите предмет обсуждения, а потом критикуйте. |
#15
|
||||
|
||||
Цитата:
ИМХО, делать на основе откровенно примитивного языка платный прокачанный - глупо. Да, конечно у PureBasic есть подвижки в хорошую сторону. Но зачем брать изначально порочное и пытаться прилизать, когда можно взять изначально нормальное и улучшить до хорошего? jmp $ ; Happy End! The Cake Is A Lie. |