Нативный CopyMemory24.09.2023, 11:14. Показов 8570. Ответов 122
Метки рассуждения (Все метки)
Натолкнуло на рассуждения, уже ранее упомянутое.. В общем то уже ранее слышал, про замедление работы апишных функций в современных реалиях. Собственно вопрос, возможно ли копирование блока/участка с динамически меняющимся (настраиваемым) значением(?). Собственно копирование то возможно блоков разного размера, есл говорить о больших - замапив на оба блока массивы и выполнив присвоения в цикле с одного массива в другой. Тесты показывают, что блок одинакового размера копируется в 4 раза быстрей с помощью массива long, нежели битового и также в других случаях - чем меньше итераций, тем кратно быстрей. Можно копировать и большие блоки за одну операцию средствами VB. Если создать тип, с фиксированным массивом внутри, то один экземпляр типа (фактически массив) можно присвоить другому экземпляру типа. С динамическими массивами так не получится, блок перезаписывается, также как и у строк. С другой стороны у фиксированого массива свои недостатки, его нельзя замапить изменить его заголовочную структуру и даже поменять указатель на нее
0
|
||||||
| 24.09.2023, 11:14 | |
|
Ответы с готовыми решениями:
122
Private Declare Sub CopyMemory Lib 'kernel32' Alias 'RtlMoveMemory' (Destination As Any, Source As Any, ByVal Length As Long) В WinXP не работает API процедура CopyMemory. Что делать? Почему указатель нулевой при CopyMemory |
| 22.11.2023, 10:18 | |
|
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 22.11.2023, 11:46 | |
|
да надо самому научиться пользоваться дизассемблером
реверс-инженеринг - это интересно Добавлено через 1 минуту вот например, мне нужен был исходный код функции InputBox, если бы я получил этот исходный код сразу через дизассемблер например, то я сразу бы и узнал про функцию DialogBoxParam и кучу бы времени сэкономил Добавлено через 51 секунду самому можно быть маэстро короче
0
|
|
| 25.11.2023, 09:49 [ТС] | |
|
Небольшое лирическое отступление.
Кликните здесь для просмотра всего текста
Периодически можно увидеть вопрос, как можно защитить свой vba проект. Есть встроенная защита паролем, есть хак с правкой бинарника vba, но это не надежные способы. Не так давно появился Vba-compiler очень продуманый, который стоит как грузовик (если бы его у нас еще можно было купить )) Я кстати попробовал его в триал режиме, там действительно компилится библиотека, из которой функции подключаются через Declare (в vb использовать эту библиотеку не получилось) В этой связи думается, что, так скажем, 32-битная эпоха, длившаяся очень долго, была на самом деле золотым временем в VBA. Потому, что макросы VBA можно было спокойно и легко писать на VB6 и компилить в библиотеку. И уровень защиты отличный + 2x скорость. Сейчас, конечно везде и всюду x64.. И в этом плане для VBA-шников, я думаю, также как и для других пользователей VB должен быть интересен Twin Basic.. Сам я пока не пользовался, и не видел большого энтузиазма от местных респондентов, так понимаю, продукт сырой.. Собственно, на этом мысль заканчивется..
Добавлено через 23 минуты Продолжение мысли:
Или вопросы типа "как ограничить использование файла по времени". Гипотетически это легко все можно было бы реализовать в виде vb-шной библиотеки. Коненчо существует С++ xll, но на VB то это все гораздо проще.
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 25.11.2023, 13:43 | ||
|
0
|
||
| 25.11.2023, 16:02 [ТС] | ||
|
0
|
||
| 26.11.2023, 04:57 [ТС] | |
|
The trick, но там же не получится подключить 64й Excel в референсах и использовать все его типы и объекты, я не проверял конечно, но, что точно, это нельзя будет использовать в одном потоке с vba
0
|
|
| 27.11.2023, 12:31 [ТС] | ||||||||
|
Простой код
Добавлено через 18 минут Хорошую информацию нашел (перевод)
0
|
||||||||
| 28.11.2023, 04:35 [ТС] | ||||||
|
The trick, такое же поведение, как и в предыдущих случаях с tlb первый вызов нормальный, на втором случается это
А это же еще и cdecl..
0
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 28.11.2023, 19:32 | ||
|
Добавлено через 52 секунды testuser2, ты тут самый активный кстати по моему)))
1
|
||
|
Модератор
|
|||
| 28.11.2023, 21:12 | |||
|
0
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 29.11.2023, 11:12 | ||
|
Добавлено через 58 секунд fafalone кстати это наверное примерно такой же гений как и the trick
2
|
||
| 30.11.2023, 04:59 [ТС] | ||||||
|
The trick, блин, я что-то понапутал со своими CM-ками видимо ) Скажи пожалуйста, как в TLB прописать 64 битный параметр?
Добавлено через 6 минут Вижу в Windows Data Tipes есть LONG_PTR может быть его прописывать в odl? Добавлено через 2 часа 21 минуту Точно, это он. 3 параметр это size_t
0
|
||||||
| 30.11.2023, 14:23 [ТС] | ||||||
|
Это я думал, что в odl поддерживаютя стандартные типы windows, он же вроде с-подобный такой, даже не знаю, можно ли там делать проверку типа #If Win64, но, сделать универсальную кроссбитную тлб на самом деле оказалось очень просто - 3й параметр надо задекларить как void (без звездочки) и все закрутилось на vba x64, при чем там быстрее оказалось на 12%. Проверил таже RtlCopyMemory (доступную в 64битной версии kernel32) и она оказалась медленей чем Move на 10%.
Добавлено через 2 часа 38 минут C tlb-шкой можно строки копировать так (без StrPtr)
1
|
||||||
| 30.11.2023, 14:23 | |
|
Помогаю со студенческими работами здесь
100
CopyMemory жжет
memcpy/CopyMemory + 2-мерный динамический массив CreateFileMapping ошибка в CopyMemory Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|