Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/134: Рейтинг темы: голосов - 134, средняя оценка - 4.62
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4

Общие вопросы и приёмы эффективного программирования на BASIC

27.03.2021, 15:34. Показов 39486. Ответов 391
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот как создать кнопку:
PureBasic
1
2
3
4
5
6
7
8
9
10
Dim hwndButton As HWND = CreateWindow( _
    WC_BUTTON,
    "Текст кнопки", _
    WS_CHILD Or BS_BITMAP Or BS_PUSHBUTTON Or WS_CLIPSIBLINGS, _
    10, 10, 100, 50, _
    hwndMainForm, _
    Cast(HMENU, 1000), _
    hInst, _
    NULL _
)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 15:34
Ответы с готовыми решениями:

Общие вопросы по языку 1с Visual Basic
Всем привет, много информации нашел, но путевого очень мало, подскажите, пожалуйста, где можно побольше прочитать о достоинстве этого...

Приемы взаимодействия Visual Basic и SQL
При создании приложений, оперирующих базами данных, нередко возникают проблемы, связанные с организацией взаимодействия языка...

Основные понятия и приемы программирования
Помогите ответить на вопросы по С#. 1)Создание объектов.Понятия ссылки. 2)Массивы:одномерные,многомерные,непрерывные,массивы объектов. ...

391
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
19.04.2021, 13:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Тогда проводник не сможет показывать значок и версию в описании. А ещё манифест для высокого DPI.
Так насколько я понял тут минимальный размер нужно получить. Одной секции .text достаточно для этого приложения.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
19.04.2021, 14:31  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Одной секции .text достаточно для этого приложения.
Сделал так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* This linker script snippet is passed to ld as an implicit linker script that
   should augment the linker's default linker script. It's supposed to drop the
   objinfo section (FB compile time information) that may be added to some/all
   objects if objinfo was enabled in fbc, since this information is just bloat
   in the final binary. */
SECTIONS
{
    /DISCARD/ :
    {
        *(.fbctinf)
    }
    
    .text :
    {
        *(.text) *(.rdata) *(.idata)
    }
}
Получил екзешник 1536 байт из кода, который только вызывает MessageBox и ExitProcess.
Однако секцию .idata объединять не хочет, в файле остаются .text и .idata.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.04.2021, 14:31
Цитата Сообщение от The trick Посмотреть сообщение
тут минимальный размер нужно получить.
Не знаю, как у FB, но в PB поддержка DPI вообще не влияет на размер exe.
Манифест дописан туда, где раньше были 0
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
19.04.2021, 14:37  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Манифест дописан туда, где раньше были 0
Дописан — в смысле екзешник поправлен после создания?
0
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
19.04.2021, 14:48
Цитата Сообщение от Замабувараев Посмотреть сообщение
Получил екзешник 1536 байт из кода, который только вызывает MessageBox и ExitProcess.
Однако секцию .idata объединять не хочет, в файле остаются .text и .idata.
Странно, студийный линкер все без проблем объединяет.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Не знаю, как у FB, но в PB поддержка DPI вообще не влияет на размер exe.
Манифест дописан туда, где раньше были 0
Это из-за файлового выравнивания секций (0x200 - по умолчанию).
0
Эксперт по электронике
7174 / 3350 / 345
Регистрация: 28.10.2011
Сообщений: 13,199
Записей в блоге: 7
19.04.2021, 15:20
Цитата Сообщение от Замабувараев Посмотреть сообщение
Получил екзешник 1536 байт из кода, который только вызывает MessageBox и ExitProcess.
На PB 1КБ. Если выровнять секции по границе 16 байт будет, будет еще меньше.
Вложения
Тип файла: zip MsgBox.zip (1.1 Кб, 20 просмотров)
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 05:41  [ТС]
А у меня не получается объединить секции .text и .idata.

Впрочем, вот вам программа размером в 2048 байт, которая обращается к сайту, читает его содержимое и выводит заголовки и содержимое в коробке сообщений.

Я уверен, что вы сделаете ещё меньше и жду вашего результата.
Вложения
Тип файла: zip test.zip (6.6 Кб, 10 просмотров)
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 06:25
Цитата Сообщение от Замабувараев Посмотреть сообщение
Я уверен, что вы сделаете ещё меньше
Я решу эту задачу в 2 строки (против ваших 160):
PureBasic
1
2
InitNetwork()
MessageBox_(0,GetHTTPHeader("https://www.cyberforum.ru/"),@"Header",0)
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 06:31  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я решу эту задачу в 2 строки (против ваших 160):
А результат где?
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 06:40
Цитата Сообщение от Замабувараев Посмотреть сообщение
вот вам программа
И ещё вопрос по самой программе (вроде уже было такое с другой программой):
Почему она не закрывается после выполнения задачи? Я закрыл диалоговое окно, больше она не нужна, но она продолжает висеть в памяти.

Цитата Сообщение от Замабувараев Посмотреть сообщение
А результат где?
Так запустите, есть же у вас PureBasic
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 06:52  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так запустите, есть же у вас PureBasic
Нет, мне нужен екзешник.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Почему она не закрывается после выполнения задачи?
Которая скачивает страницу с сайта? Коробка сообщений пытается показать очень длинный текст страницы, идёт большая внутренняя работа в потрохах WinAPI, но результат не умещается и коробка сообщений сбоит.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 07:31
Цитата Сообщение от Замабувараев Посмотреть сообщение
Коробка сообщений пытается показать очень длинный текст страницы
Та у вас там ещё должен быть текст страницы?
Просто у меня только заголовок показывает и всё.

Потому этот код тоже только заголовок показывает
PureBasic
1
2
InitNetwork()
MessageBox_(0,GetHTTPHeader("https://www.cyberforum.ru/"),@"Header",0)
Для скачивания всей страницы естественно кода будет больше. Где то на 5-7 строк.
Цитата Сообщение от Замабувараев Посмотреть сообщение
но результат не умещается и коробка сообщений сбоит
Согласен, проверил на своём коде, результат аналогичный.
Значит нужно сбросить в файл и уже содержимое файла вывести на экран.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 07:39
Вот так будет с показом результата в файле
PureBasic
1
2
3
4
5
6
7
InitNetwork()
MessageBox_(0,GetHTTPHeader("https://www.cyberforum.ru/"),@"Header",0)
If ReceiveHTTPFile("https://www.cyberforum.ru/", GetTemporaryDirectory() + "url.txt")
     RunProgram(GetTemporaryDirectory() + "url.txt")
  Else
      MessageBox_(0,@"Ошибка доступа к сайту",@"Content",0)
EndIf
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 12:02  [ТС]
78ио969лшовазжт
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Для скачивания всей страницы естественно кода будет больше. Где то на 5-7 строк.
Эти пять‐семь строчек кода на выходе дают 50 килобайт.
А где же езкешник на 2048 байт?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
InitNetwork()
Зачем вообще существуют такие «операторы» и «команды»? PureBasic прекрасно видит какие функции есть в коде и может самостоятельно внутри себя вставить необходимые инициализации.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 14:05
Цитата Сообщение от Замабувараев Посмотреть сообщение
Эти пять‐семь строчек кода на выходе дают 50 килобайт.
Мне кажется вы отстали от жизни лет на 20
Кого сейчас волнуют лишние 50 - 250 КБ? У меня HDD на 2TБ и оперативки 16 Гиг.
Но даже комп 20 летней давности под WinXP легко запустит мою программу на Пурике
Цитата Сообщение от Замабувараев Посмотреть сообщение
PureBasic прекрасно видит какие функции есть в коде и может самостоятельно внутри себя вставить необходимые инициализации.
То же самое меня всегда удивляло наличие в FB таких конструкций как
#include once "InputDataDialogProc.bi"
#include once "win\commctrl.bi"
#include once "win\ole2.bi"
#include once "windows.bi"

и т.п.
Неужто FreeBasic сам не видит какие функции есть в коде и не может самостоятельно открыть нужную библиотеку?
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 14:47  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Неужто FreeBasic сам не видит какие функции есть в коде и не может самостоятельно открыть нужную библиотеку?
Это не библиотеки, это файлы с исходным кодом.
В файлах исходного кода нет библиотек.
Компилятору вообще не надо открывать библиотеки, компилятор только вставляет вызов функции, ничего больше.
Открывать библиотеки — это задача линковщика.
0
Эксперт по электронике
7174 / 3350 / 345
Регистрация: 28.10.2011
Сообщений: 13,199
Записей в блоге: 7
20.04.2021, 14:57
Цитата Сообщение от Замабувараев Посмотреть сообщение
Это не библиотеки, это файлы с исходным кодом.
Это не важно.
Пусть FB просканирует папку с заголовочными файлами и сам подключит те что используются в коде. Ведь FB
Цитата Сообщение от Замабувараев Посмотреть сообщение
прекрасно видит какие функции есть в коде и может самостоятельно внутри себя вставить необходимые
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 15:14  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Кого сейчас волнуют лишние 50 - 250 КБ? У меня HDD на 2TБ и оперативки 16 Гиг.
Я вижу, вы зашли сразу с козырей.
Есть ли у вас ещё какие‐нибудь доводы о пользе раздутого программного обеспечения для процессора, благотворном воздействии на жёсткий диск и выгоды для оперативной памяти?

Добавлено через 11 минут
Цитата Сообщение от locm Посмотреть сообщение
Пусть FB просканирует папку с заголовочными файлами
Нет, компилятор должен сканировать только те файлы, которые указали явно.
Иначе у вас будет Ambiguous Function Names (конфликт имён) для сторонних функций.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.04.2021, 15:31
Цитата Сообщение от Замабувараев Посмотреть сообщение
Есть ли у вас ещё какие‐нибудь доводы
Скорость разработки + кросплатформенные решения против экономии в 50 КБ.
Я на ваш последний код потратил 2 минуты, и он будет работать на всех 3-х системах.
Вы будете писать свой ещё неделю, и скорее всего на MAC так и не допишите, допустите неизбежно несколько ошибок, т.е. большой код требует всестороннего и тщательного тестирования. В моём коде 10 строк, там и тестировать нечего и исправить легко.
Но ваш на 50 КБ меньше. Есть ли сейчас в этом смысл, сами то как думаете?
В разумных пределах. Я тоже против, когда "Hello World!" занимает 60 MБ, но + 200-300КБ, т.е. exe-шники Делфи меня уже вполне устраивают на сегодняшний день

Добавлено через 5 минут
Цитата Сообщение от Замабувараев Посмотреть сообщение
Иначе у вас будет Ambiguous Function Names (конфликт имён) для сторонних функций.
И что за трагедия? Просто переименуй. Если не можешь, то алиесы, прототипы и т.п.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.04.2021, 15:57  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
кросплатформенные решения
Цитата Сообщение от Pro_grammer Посмотреть сообщение
он будет работать на всех 3-х системах
Так это вы отстали от жизни лет на 20: винапи уже давно кроссплатформенное.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но ваш на 50 КБ меньше. Есть ли сейчас в этом смысл, сами то как думаете?
Вы просто боитесь выйти из зоны комфорта и всего того, чего нет в IDE.
Цитата Сообщение от locm Посмотреть сообщение
Пусть FB просканирует папку с заголовочными файлами
То есть на каждый файл в моём проекте компилятор будет читать 1290 файлов, результат которых всё равно будет использован только в нескольких случаях? Хорошая попытка прорекламировать SSD, но нет.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Просто переименуй.
Ну вот опять этот визуальный мусор с подчёркиваниями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2021, 15:57

Стоит ли изучать как устроена ЭВМ для эффективного программирования
Всем дробового времени суток (пятница!!!) Стоит ли изучать как устроен ЭВМ для эффективного программирования на плюсах ?

Подскажите ссылки на приемы программирования для Embedded
Народ! Подскажите пожалуйста ссылки, на приемы и упражнения по программированию, с разьяснениями по встраеваемому ПО. Заранее благодарю!

Нужны сайты про C#, приемы, рецепты, трюки программирования
Не советуйте msdn или книгу. Справочник должен быть похож на другие стандартные справочники как у delphi, которых полно в инете, а к C#...

Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике
интересны приемы программирования на C# те о которых не пишут в книгах, которые узнаются на практике. какие OpenSource проекты можете...

Общие вопросы.
Доброго времени суток! После изучения Паскаля, решил перейти на изучение С/С++, прочитал много мануалов для новичков, но накопились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
380
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru