нарыл 5.72 32\64 теперь мучаюсь
в справке не написано где брать другой копилятор
показал я папку с компилятором 32 из винды32, рубанулось
надо рядом с 64 установить версию 32?
или как?
по умолчанию 64 компилит нормально
как правильно компилировать 32\64
Сообщений 1 страница 17 из 17
Поделиться109.06.2022 09:34:25
Поделиться209.06.2022 10:50:05
newJS
Вроде рядом папки, по стандарту устанавливаешь, может через реестр видит, но в настройках компилятора есть выбор компилятора. А компилировать оба можно только из проекта. Хотя я хотел бы чтобы была возможность не создавая проект компилировать в оба, так как делаю простые программы из одного исходника.
Поделиться309.06.2022 12:47:49
newJS
Устанавливаешь разной разрядности, потом в настройках указываешь путь к pbcompiler.exe\pbcompilerc.exe
при компиляции выбираешь нужный
Поделиться409.06.2022 12:53:08
нарыл 5.72
Дык, уже больше двух лет прошло, как выложили, например, на ру-борде.
Я там, кстати, портабельную версию выкладывал.
Поделиться509.06.2022 19:47:37
Устанавливаешь разной разрядности
таки оба устанавливать, поставлю не жалко
а я ему притащил папку с винды 32, получается ему всё надо
Дык, уже больше двух лет прошло, как выложили
надобности не было, 570 устраивала, но была только 32 и винда только 32
теперь есть разные винды, пришлось озаботиться
видел огрызки 573, огрызки нам не надо
Поделиться610.06.2022 08:20:12
видел огрызки 573, огрызки нам не надо
А как думаешь, в 6.00 какой компилятор идёт тот что не Backend?
А у меня ещё и общий локальный конфиг, в реестре через ком-строку указал. Сейчас в линукс, позже выложу. И конфиг пора мне обновлять, добавил кнопки на панели инструментов - "прыжок в папку исходника" и некоторые настройки: в разделе "Редактор" вкладки в несколько рядов (прокручивать не люблю) и "Отображать вкладку создания нового файла" (как в браузере), и для линукс в разделе "Панель инструментов" оставил одну панель "Список процедур", а то что-то по дефолту всегда "Формы" встаёт. Просто копирую папку конфигов и сразу настроенный запускается.
Если что мой контент теперь тут, на офсайте в подписи
Отредактировано AZJIO (10.06.2022 08:22:47)
Поделиться711.06.2022 01:25:34
А как думаешь, в 6.00 какой компилятор идёт тот что не Backend?
Формально, PureBasic это компилятор "переднего плана" (front-end), так как он генерирует промежуточный код для другого компилятора. Таким образом, оба и FASM и GCC для него back-end компиляторы.
Хотя Фред, похоже, FASM компилятором заднего плана почему-то не считает.
Поделиться811.06.2022 03:55:55
Smitis
Я имел ввиду то, что компилятор в 6.00 является по сути последней версией 5.73, это не огрызок, не альфа и не бета, а с вполне заявленными исправлениями.
Поделиться911.06.2022 06:34:48
AZJIO
не знаю на счёт компиллятора в 6.0, но версия сырая - ресурсы не собирает.
Поделиться1013.06.2022 11:55:19
Я имел ввиду то, что компилятор в 6.00 является по сути последней версией 5.73, это не огрызок,
огрызок это бесплатная урезанная(обгрызанная) версия
столкнулся с непоняткой, код в 64 не работает
в системе 64 компилил 32 и 64, 32 работает, а 64 нет
ошибок нет, всё отрабатывает, а картинки нет
может в коде косяк?
#W=1234 EnableExplicit UsePNGImageDecoder() Global imgS, imgD imgS=LoadImage(#PB_Any, "..\pics\bord14.png"); 24 ;imgS=LoadImage(#PB_Any, "..\pics\rotation_1.png"); 32 imgD=CreateImage(#PB_Any, ImageHeight(imgS), ImageWidth(imgS), ImageDepth(imgS), 22222) Procedure Image_Rotate() Structure corners x1.i; левый верхний угол y1.i x2.i; правый верхний угол y2.i x3.i; левый нижний угол y3.i EndStructure Protected iDc, dc, n.a, new.corners, w, h w=ImageWidth(imgS) h=ImageHeight(imgS) new\x1=0 new\y1=w new\x2=0 new\y2=0 new\x3=h new\y3=w iDc=CreateCompatibleDC_(0) SelectObject_(iDc, ImageID(imgS)) dc=StartDrawing(ImageOutput(imgD)) n=PlgBlt_(dc, @new, iDc, 0, 0, w, h, 0, 0, 0) StopDrawing() DeleteDC_(iDc) ;Debug n EndProcedure Procedure senior() Protected ev, em If OpenWindow(#W, 870, 640, 400, 300, "") AddKeyboardShortcut(#W, #PB_Shortcut_Escape, 0); ESC Image_Rotate() ImageGadget(234, 9, 9, 0, 0, 0) SetGadgetState(234, ImageID(imgS)) ImageGadget(235, 229, 9, 0, 0, 0) SetGadgetState(235, ImageID(imgD)) Repeat ev=WaitWindowEvent():em=EventMenu() If ev=#PB_Event_Menu And em=0:Break:EndIf; ESC Until ev=#PB_Event_CloseWindow EndIf EndProcedure senior()
Поделиться1113.06.2022 12:44:17
не знаю на счёт компиллятора в 6.0, но версия сырая - ресурсы не собирает.
Сборку ресурсов выполняет porc.exe, а не компилятор.
может в коде косяк?
Структура неправильная. В описании функции PlgBlt сказано что требуется 3-ех элементный массив структур POINT.
У POINT тип полей Long, а не Integer. Т. е.
Structure corners x1.l; левый верхний угол y1.l x2.l; правый верхний угол y2.l x3.l; левый нижний угол y3.l EndStructure
Поделиться1215.06.2022 06:21:45
Пётр, проверю скажу, здесь у меня только 32
Поделиться1319.06.2022 19:06:11
Петр
А на сколько кретично?
Massiv.point(3) Structure Point.point Point.point Point.point Endstructure
Может не интегер виноват все же,ведь это какой экран нужен что бы за целое к отрицательному числу выйти при интегер?
Отредактировано Sergeihik (19.06.2022 19:09:54)
Поделиться1419.06.2022 19:49:51
Может не интегер виноват
Сколько байт требует Integer в x64 системе?
Какого типа поля в структуре POINT и сколько они занимают памяти в x64 системе?
Поделиться1519.06.2022 21:17:12
Сколько байт требует Integer в x64 системе?
Какого типа поля в структуре POINT и сколько они занимают памяти в x64 системе?
В x64 integet можно разный наметить,всё зависит на чем программировать
https://docs.microsoft.com/ru-ru/cpp/cp … w=msvc-170
Также и с функцией(процедурой),можно что бы свой тип ввоспринимала в структуре массиве,как эта работает я конечно не знаю но думаю зачем было делать на 64 бита с большим числом ведь все равно такое число пикселей не влезет в экран компа а их ещё обрабатывать нужно,загружать из памяти и с этими числами работать...
Ps:И вот будет допустим апишная функция под int16 а пурик на полный регистр 64бита скомпилит и что будет?
Отредактировано Sergeihik (19.06.2022 21:41:50)
Поделиться1620.06.2022 00:02:26
В x64 integet можно разный наметить,всё зависит на чем программировать
На PB конечно же. Мы ведь его обсуждаем.
Я про Integer из PB, а не про stdint.h из си. https://ru.wikipedia.org/wiki/Stdint.h
Эти типы имеют размер независимый от платформы.
но думаю зачем было делать на 64 бита с большим числом ведь все равно такое число пикселей не влезет в экран
4 миллиарда тоже не влезет если что.
Но речь не об этом. Декларация структуры POINT https://docs.microsoft.com/en-us/window … ndef-point
Какой там тип пременных и сколько байт требуется на поле в x64 системе?
Есть ли там типы из stdint.h?
Поделиться1720.06.2022 09:18:18
Пётр, заработало, не поленился, несколько раз поменял туда\сюда, L работает I нет
а в системе 32 работало потому как там L и I равны
Может не интегер виноват все же,ведь это какой экран нужен что бы за целое к отрицательному числу выйти при интегер?
да я тоже удивляюсь зачем тут 4 байта, два и то много
не только в этой структуре под экран столько они выделяют