Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
 Аватар для Dimon_bogoduhov
127 / 62 / 2
Регистрация: 15.02.2012
Сообщений: 127

Как обратиться к оперативной памяти, выделенной под указанный процесс?

15.02.2012, 02:24. Показов 4559. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята подскажите пожалуйста, как обратится к оперативной памяти, выделенной под указаный процес.
P.S.: Хочу сделать прогу типо артмани, но никак не могу найти про доступ к оперативной памяти. Буду очень благодарен за помощь.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2012, 02:24
Ответы с готовыми решениями:

Отображение количества оперативной памяти, которое занимает указанный процесс
Как написать программу, которая будет показывать, сколько оперативной памяти занимает указанный процесс? Буду благодарен.)

Распределение оперативной памяти выделенной под программу
Здравствуйте. Помогите с объяснением некоторых тем, нигде не могу найти. №1 Целый тип данных. Даже не знаю, о чем там можно...

Не выгружаеться процесс из оперативной памяти
У меня при стандартной работе не освобождаеться оперативная память, после работы в интернете, текстовых файлах и т.д. оперативка загружает...

26
1412 / 878 / 93
Регистрация: 08.02.2017
Сообщений: 3,753
Записей в блоге: 2
16.04.2024, 15:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
Это невозможно в общем случае.
Все я понял, и там похоже ерунду написал. Главное закрыть вопрос )
0
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
17.04.2024, 18:33
The Trick самый лучший программист в мире
2
1412 / 878 / 93
Регистрация: 08.02.2017
Сообщений: 3,753
Записей в блоге: 2
20.04.2024, 08:28
Цитата Сообщение от The trick Посмотреть сообщение
Есть InStrB который не конвертирует.
Вот нет, к сожалению, счас проверил, PeakWorkingSet подрастает после использования InStrB
Нашел декларцию от 2004 там все как надо, и уж было обрадовался, но нет не работает
Visual Basic
1
Declare Function vbaInStr Lib "msvbvm60.dll" Alias "__vbaInStr" (ByVal lStart As Long, ByVal lpStringMatch As Long, ByVal lpStringCheck As Long, ByVal lCompare As Long) As Long
Отсюда такая информация, тут что-то в терминах ассемблера, я конечно не понимаю
Rule 1. Functions of rtcXXX have a tendency to take a Variant as a parameter, compared to __vba_XXX
functions which often take registers of ECX and EDX.
Rule 2. Functions of rtcXXX have a tendency to return the result in result_variant, which is passed as a
parameter, while __vba_XXX functions often return the result in EAX, AX, or AL. Some rtcXXX functions also
return the pointer to result_variant in EAX.
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
20.04.2024, 20:00
Цитата Сообщение от testuser2 Посмотреть сообщение
Вот нет, к сожалению, счас проверил, PeakWorkingSet подрастает после использования InStrB
Нашел декларцию от 2004 там все как надо, и уж было обрадовался, но нет не работает
Да ты прав, я постоянно совершаю эту ошибку.

https://www.vbforums.com/showt... ost5563637
https://www.vbforums.com/showt... ost5563889
1
1412 / 878 / 93
Регистрация: 08.02.2017
Сообщений: 3,753
Записей в блоге: 2
21.04.2024, 15:54
Сделал свою поисковушку для значения типа Double. Там перед началом поиска мапятся 8 массивов на одну область с разным смещением. Поисковой цикл шагает через 8 байт, но внутри еще проходит цикл по всем массивам, т.о. просматриваются все биты. Но увы подход оказался не очень продуктивный, меденновато (250 мб за 7 сек.), поэтому код выкладывать нет особого смысла..
The trick, спасибо за ссылки, есть там много интересного про медленный RtlCompareMemory, и др. Ты даже выкладывал там сурс-код InstrB на С. Я так понял, что если этот код переделать под байт-массивы и скомпилировать в библиотеку, это и будет самый быстрый InStrB для бинарных данных? Как таковой особой потребности нет, просто интересно )
0
1412 / 878 / 93
Регистрация: 08.02.2017
Сообщений: 3,753
Записей в блоге: 2
29.04.2024, 11:58
Цитата Сообщение от testuser2 Посмотреть сообщение
Я сделал код который находит указатель на Double занчение в ячейке Эксель.
Я короче сейчас вычислил, как там находить заголовочную таблицу, в которой хранятся указатели на данные в ячейках. Она состоит из 8 байтных структур, в которых 1е 4 байт(x86) - это указатели (либо данные если данные умещаются в 4 байта - маленькие числа) на числ(Double) либо строки (нуль-терминальные юникод), в остальной части хранится тип и еще какое-то число (х.з.). Теперь бы хотелось найти указатель на эту таблицу - в каком-нибудь из объектов, чтобы получать к ней доступ более "цивилизованным" методом. Хотелось бы просто получить список всех объектов для поиска в них нужного указателя (для этого у меня есть специальная функция, довольно простая)
1
1412 / 878 / 93
Регистрация: 08.02.2017
Сообщений: 3,753
Записей в блоге: 2
30.04.2024, 13:00
Цитата Сообщение от testuser2 Посмотреть сообщение
Кстати, похоже такой возможности нет.
Короче я нашел, как это делать. Думал будет затупно, но довольно шустро работает
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub TestHeapWalk()
    Dim he As PROCESS_HEAP_ENTRY, he2 As PROCESS_HEAP_ENTRY
    Dim hHeap As LongPtr, arr(), i&, Ptr As LongPtr
    
    ReDim arr(10)
    Debug.Print VarPtr(arr(0))
    
    Ptr = VarPtr(arr(5))
    
    With GetAllocInfo(Ptr)
        Debug.Print .lpData
        Debug.Print .cbData
    End With
End Sub
 
Function GetAllocInfo(ByVal Ptr As LongPtr) As PROCESS_HEAP_ENTRY
    Dim hHeap As LongPtr, he As PROCESS_HEAP_ENTRY, he2 As PROCESS_HEAP_ENTRY
    
    hHeap = GetProcessHeap
    HeapLock hHeap
    Do While HeapWalk(hHeap, he)
        If he.wFlags = PROCESS_HEAP_ENTRY_BUSY Then
            If he.lpData > Ptr Then
                GetAllocInfo = he2
                Exit Do
            End If
            he2 = he
        End If
    Loop
    HeapUnlock hHeap
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2024, 13:00

Процесс explorer.exe съедает 99% оперативной памяти
Приветствую, подскажите, пожалуйста, в чем может быть дело. По не понятной для меня причине время от времени процесс explorer.exe начинает...

Процесс explorer.exe съедает 99% оперативной памяти
Приветствую, подскажите, пожалуйста, в чем может быть дело. По не понятной для меня причине время от времени процесс explorer.exe начинает...

Процесс explorer.exe съедает 99% оперативной памяти
Приветствую, подскажите, пожалуйста, в чем может быть дело. По не понятной для меня причине время от времени процесс explorer.exe начинает...

Освобождение памяти, выделенной под массив
Выделяю память под массив: int (*array_1) = new int; как освободить то, что выделил? И еще вопрос: как указателю...

Очистка памяти, выделенной под небинарное дерево
Здравствуйте, реализовал небинарное дерево. Проблема с очисткой памяти. По отладчику пробегался, функция clear вроде как удаляет каждый...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru