Страница: 1 | 2 |
Вопрос: PB +) PureBasic
Добавлено: 01.06.04 16:58
Автор вопроса: Fallout | Web-сайт:
http://www.purebasic.com/
Вот интерестно обещают маленькие экзешники от 5КБ... плюс куча всяких наворотов без всяких рантаймов и тд итп... вообщем счас качаю... ещё 40% осталось...
Компилятор платный... там и ИДЕ есть и подобное... вообщем просто интерестно а лучше ли он PowerBasic или нет.. если да.. и он оптимизирует и не суёт мусор как Повер то гуд. +))
Ответы
Всего ответов: 24
Номер ответа: 1
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #1
Добавлено: 02.06.04 15:12
Purebasic есть на пиратских сидюках вместе с PB.
Описание одной из версий есть в моей статье:
http://vbnet.ru/article/showarticle.asp?id=131
Если говорить кратко, по сравнению с ПБ, Purebasic значительно слабее, на порядок...
Переходить на него с ПБ нет смысла
Номер ответа: 2
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #2
Добавлено: 02.06.04 15:59
Судя по статье он траслирует код в мнемонику, а потом через чужой компилятор делает экзешник. А ПБ сразу в машинные коды.
А вообще то жаль что там мало хороших компиляторов БЕЙСИК-а. Не из чего выбрать.
Номер ответа: 3
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #3
Добавлено: 02.06.04 16:09
Я скачаю и гляну последнюю версию... а насчёт ПБ... то слишком много грязного кода... бээ... почему не сделают.. нормальный
Номер ответа: 4
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #4
Добавлено: 02.06.04 16:16
В Purebasic примитивный синтаксис языка, но для многих пользователей он подойдет... Там есть поддержка мультимедии, библиотеки компрессии и прочие мелкие вкусности.
Может он тебе и понравится...
Номер ответа: 5
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #5
Добавлено: 02.06.04 16:52
Хм... блин ну прсото ПБ тоже не выход... а хочется чистоты.. кода а так ПБ очень хорошь
Номер ответа: 6
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #6
Добавлено: 02.06.04 18:08
Ну покажи хоть где ты там мусор увидал. Где код нечист на руку? Может алгоритм был неоптимизирован. И вообще, непонятно на чём собственно PB писался. Если на АСМ, то на каком. Или может на ЯВУ? Хотя вряд ли.
Номер ответа: 7
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #7
Добавлено: 03.06.04 09:22
PBWIN 7.x это 16-разрядное приложение. Писался соответсвенно он каким-то древним компилятором.
Бинарный код очень похож на Borland C++ для Win 3.11
Номер ответа: 8
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #8
Добавлено: 03.06.04 09:40
Создай пустой проект с одной голой WinMain функцией откомпилируй .. потом дизассемблируй и дивись.... откуда чтолько странного ненужного тебе кода +) создай простую функцию типа a=b+c и погляждди опять таки в дизассемблере что с ней стало....
Номер ответа: 9
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #9
Добавлено: 03.06.04 10:43
По моему ты слишком много требуешь от PB. Это же не ассемблер в конце-концов,
в Дельфи к примеру пустой проект с одной формой будет скомпилирован в EXE весом
в полмегабайта! Вот где мусора навалом...
Номер ответа: 10
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #10
Добавлено: 03.06.04 10:50
Дело не в том что он ассемблер просто я бы хотел чтоб я делаю... программу и у меня былоб то что я дулаю а не какой нить каркасик ещё навесок ... который мне не сдался +)
Номер ответа: 11
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #11
Добавлено: 03.06.04 11:03
Практически любой компилятор имеет "STUB PE" - стартовый каркас к которому дописывается
скомпилированный код. В PBWIN он имеет размер около 5-6 кбайт, качество кода в стубе
практически не имеет значения, его главная задача загрузить код в память, запустить
функцию RtlWinMainStartUP которая возмет из системы параметры (hInstance, hPrevInst,
lpszCmdLine,nCmdShow ) и передаст их функции WinMain, в код пользователя...
Кстати, есть проги которые "чистят" EXE от мусора, к примеру экзешники от PBWIN
уменьшаются в размере на 1-2 кбайта, а дельфийские на 20-40 кбайт! Так, что
в PB еще не так все плохо...
Номер ответа: 12
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #12
Добавлено: 03.06.04 11:09
Они не чистят сам код +) они могут убрать дос заглушку и выровнять секции ... до безопастного значения в 512 байт ... ну вырезать ещё релоки тд...
А вот вопрос тоды на засыпку нафига открывать Hkey Local Machine и сразу его закрывать .... в чём тут понт то? зачем верней ПБ компилятор это делает?
Номер ответа: 13
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #13
Добавлено: 03.06.04 11:19
Да нет, та прога, что-то из хвостов экзешника выкусывает...
Сейчас запустил пустой экзешик от PB под отладчиком, вот что получилось:
Debug process created...
-PID: 5ACh process handle: E0h
-TID: 19Ch thread handle 11Ch
Dll loaded...ntdll.dll Base: 77F80000h
Dll loaded...ADVAPI32.dll Base: 79060000h
Dll loaded...KERNEL32.dll Base: 793A0000h
Dll loaded...RPCRT4.dll Base: 770F0000h
Dll loaded...ole32.dll Base: 77A50000h
Dll loaded...GDI32.dll Base: 77F40000h
Dll loaded...USER32.dll Base: 77E10000h
Dll loaded...OLEAUT32.dll Base: 779B0000h
Dll loaded...Shim.dll Base: 78320000h
Dll loaded...APISnoop.dll Base: 10000000h
Dll loaded...MSVCRT.dll Base: 78000000h
API: CoInitialize(OLE32.DLL)
Dll loaded...ShellHook.dll Base: 6E380000h
Dll loaded...IMM32.dll Base: 75E00000h
API: CoInitialize returned: 00000000h
API: GetVersionExA(KERNEL32.DLL)
API: GetVersionExA returned: 00000001h
API: GetStartupInfoA(KERNEL32.DLL)
API: GetStartupInfoA returned: 0012FF70h
API: GetCommandLineA(KERNEL32.DLL)
API: GetCommandLineA returned: 00132718h
API: GetEnvironmentStringsA(KERNEL32.DLL)
API: GetEnvironmentStringsA returned: 00139800h
API: GetModuleHandleA(KERNEL32.DLL), 00000000h=?
API: GetModuleHandleA returned: 00400000h
API: TlsAlloc(KERNEL32.DLL)
API: TlsAlloc returned: 00000005h
API: TlsGetValue(KERNEL32.DLL)
API: TlsGetValue returned: 00000000h
API: GlobalAlloc(KERNEL32.DLL), 0040h, 00000054h
API: GlobalAlloc returned: 00139568h
API: TlsSetValue(KERNEL32.DLL)
API: TlsSetValue returned: 00000001h
API: GetSystemInfo(KERNEL32.DLL)
API: GetSystemInfo returned: 00040000h
API: RegOpenKeyExA(ADVAPI32.DLL)
API: RegOpenKeyExA returned: 00000000h
API: RegCloseKey(ADVAPI32.DLL)
API: RegCloseKey returned: 00000000h
API: TlsGetValue(KERNEL32.DLL)
API: TlsGetValue returned: 00139568h
API: GlobalFree(KERNEL32.DLL), 00139568h
API: GlobalFree returned: 00000000h
API: TlsSetValue(KERNEL32.DLL)
API: TlsSetValue returned: 00000001h
API: TlsFree(KERNEL32.DLL)
API: TlsFree returned: 00000001h
API: FreeEnvironmentStringsA(KERNEL32.DLL)
API: FreeEnvironmentStringsA returned: 00000001h
API: CoUninitialize(OLE32.DLL)
API: CoUninitialize returned: 00135B50h
API: ExitProcess(KERNEL32.DLL), 0000h
!!! Debuggee exited...TID: 19Ch ExitCode: 0 (0h)
Номер ответа: 14
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #14
Добавлено: 03.06.04 11:23
RegOpenKeyExA открывается затем, что можно указать
для какой Оси ты скомпилировал свою прогу:
#OPTION {VERSION3 | VERSION4 | VERSION5}
Там ищется версия виндовс, если она не совпадает
с #OPTION то прога не запустится
Номер ответа: 15
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #15
Добавлено: 03.06.04 11:37
Угу... НО Я ТО НЕ ИСПОЛЬЗУЮ ЭТУ КАМАНДУ ПРЕПРОЦЕССОРА!!!! о чём я и говрю я хочу чтоб было то что я пишу ...