Нативный CopyMemory24.09.2023, 11:14. Показов 9907. Ответов 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
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 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
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 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
|
||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 28.11.2023, 19:32 | ||
|
Добавлено через 52 секунды testuser2, ты тут самый активный кстати по моему)))
1
|
||
|
Модератор
|
|||
| 28.11.2023, 21:12 | |||
|
0
|
|||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 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 | |
|
CopyMemory жжет
memcpy/CopyMemory + 2-мерный динамический массив CreateFileMapping ошибка в CopyMemory Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем
Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026
. . .
|
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки
План доработки модели динамики микоризных симбиозов (EcM с гистерезисом)
Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
|
|
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
|
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
|
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание:
как одно здание порождает конфликты требований,
которые никто не планировал
Материалы для обсуждения с МГСУ · 2026
Рисунки внутри приложенного ворд файла.
Что за. . .
|
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования?
Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная.
Где разрыв
. . .
|