|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
Зачем некоторые программисты используют GlobalAlloc? По мне так это глупость полнейшая31.07.2023, 13:41. Показов 1668. Ответов 25
Метки нет (Все метки)
Зачем некоторые программисты используют GlobalAlloc??? По мне так это глупость полнейшая, неужели нельзя обойтись без GlobalAlloc для программиста на VB можно же и не выделять память вообще для своей программы, можно пользоваться например байтовыми массивами простыми если надо. Я не понимаю зачем GlobalAlloc, GlobalLock, GlobalUnlock, GlobalFree. Может кто-нибудь мне объяснит зачем так мудрить...
0
|
|
| 31.07.2023, 13:41 | |
|
Ответы с готовыми решениями:
25
Зачем это используют Почему программисты используют классы, удобно ли это, плюсы и минусы классов сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? |
|
Супер-модератор
|
|
| 31.07.2023, 22:08 | |
|
Скажу осторожно: в современных версиях Windows статус участка выделенной памяти может быть разный (в частности, возможно, что участок памяти не будет позволять разместить исполняемый код - это про байтовые массивы). А GlobalAlloc выделяет память, в которой можно поместить исполняемый код.
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 31.07.2023, 23:15 [ТС] | |||||||||||
|
Catstail, интересная гипотеза, но я своими глазами видел как исполняемый код засовывали в байтовый массив
Добавлено через 22 минуты Вот пример функция сортировки массива qsort здесь в этом примере исполняемый код функции как раз лежит в байтовом массиве: Модуль:
1
|
|||||||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 31.07.2023, 23:17 [ТС] | |
|
У меня код немного неправильный, брал от туда: Работа с DLL в Visual Basic (статья)
Но суть в том что как видно в байтовом массиве лежит исполняемый код
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 11:18 [ТС] | |
|
На мою тему так никто особо толком и не ответил. Зато вот сейчас я понял. Что выделять память через API быстрее, чем через ReDim у массива.
Добавлено через 2 минуты The Trick говорит, что выделяя память через ReDim Preserve всё сначала забивается пустыми нулями, а на это уходит много времени.
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 15:00 [ТС] | |
|
The trick, извини, чуть ошибся
Ну получается что использовать API для выделения памяти имеет смысл только чтобы сэкономить чуть-чуть времени на выделение памяти? А так в большинстве случае и простой байтовый массив сойдёт. Так ведь?
0
|
|
|
Модератор
|
|
| 24.09.2023, 15:07 | |
|
HackerVlad, все эти микрооптимизации можно использовать лишь бы был в этом смысл. Если тебе просто какие-то данные нужно обработать некритично по времени - тогда и простой массив пойдет.
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 15:11 [ТС] | |
|
The trick, а можно с тобой проконсультировать по поводу кода который я нашёл? Там используется GlobalAlloc я вот думаю нужен ли он там вообще!?
0
|
|
|
Модератор
|
||
| 24.09.2023, 15:20 | ||
|
1
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 24.09.2023, 15:22 [ТС] | ||||||
|
The trick, в общем я использую код, который где-то нашёл в Интернете, для загрузки картинок из байтового массива:
Добавлено через 1 минуту The trick, тут как раз CreateStreamOnHGlobal
0
|
||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 15:23 [ТС] | |
|
The trick, на твой взгляд этот код оптимален значит? и ничего менять не надо?
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 24.09.2023, 15:31 [ТС] | ||
|
0
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 17:42 [ТС] | |
|
The trick, надо будет тогда значит написать функцию более оптимальную для загрузки картинок из байтового массива. Мне это нужно ни только для PNG. Но и для загрузки юникодных имён файлов. Сначала загружаю я файл в байтовый массив потом загружаю картинку.
Добавлено через 1 час 58 минут The trick, слушай, а этот код загрузки картинки из байтового массива получается не грузит PNG? Можешь, пожалуйста, поделиться готовым кодом для загрузки картинки из байтового массива чтобы грузило и PNG тоже?
0
|
|
|
Модератор
|
|
| 24.09.2023, 18:30 | |
|
1
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.09.2023, 18:37 [ТС] | |
|
The trick, я наверное таким образом не смогу применить твой DrawFit. Так как там функция возвращает As StdPicture у тебя, а мне надо iPicture Disp вроде как
0
|
|
| 24.09.2023, 18:37 | |
|
Помогаю со студенческими работами здесь
20
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? Зачем мне принтер, если он ест краску, я же могу и так с компьютера рисовать? QueryTable копирует веб страницу не так, как мне нужно, то есть некоторые ссылки не копируются Почему программисты часто используют шестнадцатеричную систему счисления?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|