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

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

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

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

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

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

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

26
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,554
Записей в блоге: 1
16.04.2024, 15:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
Это невозможно в общем случае.
Все я понял, и там похоже ерунду написал. Главное закрыть вопрос )
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
17.04.2024, 18:33
The Trick самый лучший программист в мире
2
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,554
Записей в блоге: 1
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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
20.04.2024, 20:00
Цитата Сообщение от testuser2 Посмотреть сообщение
Вот нет, к сожалению, счас проверил, PeakWorkingSet подрастает после использования InStrB
Нашел декларцию от 2004 там все как надо, и уж было обрадовался, но нет не работает
Да ты прав, я постоянно совершаю эту ошибку.

https://www.vbforums.com/showt... ost5563637
https://www.vbforums.com/showt... ost5563889
1
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,554
Записей в блоге: 1
21.04.2024, 15:54
Сделал свою поисковушку для значения типа Double. Там перед началом поиска мапятся 8 массивов на одну область с разным смещением. Поисковой цикл шагает через 8 байт, но внутри еще проходит цикл по всем массивам, т.о. просматриваются все биты. Но увы подход оказался не очень продуктивный, меденновато (250 мб за 7 сек.), поэтому код выкладывать нет особого смысла..
The trick, спасибо за ссылки, есть там много интересного про медленный RtlCompareMemory, и др. Ты даже выкладывал там сурс-код InstrB на С. Я так понял, что если этот код переделать под байт-массивы и скомпилировать в библиотеку, это и будет самый быстрый InStrB для бинарных данных? Как таковой особой потребности нет, просто интересно )
0
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,554
Записей в блоге: 1
29.04.2024, 11:58
Цитата Сообщение от testuser2 Посмотреть сообщение
Я сделал код который находит указатель на Double занчение в ячейке Эксель.
Я короче сейчас вычислил, как там находить заголовочную таблицу, в которой хранятся указатели на данные в ячейках. Она состоит из 8 байтных структур, в которых 1е 4 байт(x86) - это указатели (либо данные если данные умещаются в 4 байта - маленькие числа) на числ(Double) либо строки (нуль-терминальные юникод), в остальной части хранится тип и еще какое-то число (х.з.). Теперь бы хотелось найти указатель на эту таблицу - в каком-нибудь из объектов, чтобы получать к ней доступ более "цивилизованным" методом. Хотелось бы просто получить список всех объектов для поиска в них нужного указателя (для этого у меня есть специальная функция, довольно простая)
1
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,554
Записей в блоге: 1
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru