Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Процессы и память, старая тема 
:(
    Опции темы
Helicopterr
  Дата 13.10.2005, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



скажите, можно ли определить сколько байт каждый из тукущих процессов занимает в памяти на уровне записи этой инфы в переменную int.


--------------------
people can fly
PM MAIL   Вверх
np9mi7
Дата 13.10.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Можно
(если по ОС Windows то тебе в раздел Win API и системное программирование)


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
Helicopterr
Дата 13.10.2005, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



ну что поделать...


--------------------
people can fly
PM MAIL   Вверх
_hunter
Дата 14.10.2005, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



в смысле? тебе объем занимаемой памяти нужен?
а при чем тут уровень записи?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Helicopterr
  Дата 14.10.2005, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Цитата(_hunter @ 14.10.2005, 11:51)
в смысле? тебе объем занимаемой памяти нужен?
а при чем тут уровень записи?

Объем занимаемой памяти в байтах!

int Process_N_Size = size in memory(); //к сожалению это моя фантазия, а вот как нужно пытаюсь узнать

Это сообщение отредактировал(а) Helicopterr - 14.10.2005, 22:13


--------------------
people can fly
PM MAIL   Вверх
GremlinProg
Дата 15.10.2005, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 3
Всего: 106



возьми первый модуль процесса с помощью EnumProcessModules в PSAPI, затем, для этого модуля получи информацию с помощью GetModuleInformation. lpmodinfo->SizeOfImage - это и есть размер в байтах исполняемого процесса.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Helicopterr
Дата 16.10.2005, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Цитата(GremlinProg @ 15.10.2005, 08:11)
возьми первый модуль процесса с помощью EnumProcessModules в PSAPI

Это я сделал:
Код

//---------------------------------------------------------
// выводит список процессов
//---------------------------------------------------------

#include "stdafx.h"
#include <windows.h>
#pragma comment (lib, "Psapi.lib")

void PrintProcessNameAndID( DWORD processID )
{
    char szProcessName[MAX_PATH] = "unknown";

    HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
                                   PROCESS_VM_READ,
                                   FALSE, processID );

    if (NULL != hProcess )
    {
        HMODULE hMod;
        DWORD cbNeeded; 

        if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
        {
            GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName) );

            // GetModuleInformation( ... ); 
            
        }
        else return;
    }
    else return;

    printf( "%s (Process ID: %u)\n", szProcessName, processID );
    CloseHandle( hProcess );
}


void main( )
{
    DWORD aProcesses[1024], cbNeeded, cProcesses;
    unsigned int i;

    if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
        return;    
       cProcesses = cbNeeded / sizeof(DWORD);
       for ( i = 0; i < cProcesses; i++ )
        PrintProcessNameAndID( aProcesses[i] );
}



Дальше нужна помощь
? Как включить в код это:

Код

LPMODULEINFO lpmodinfo;
DWORD cb;

typedef struct _MODULEINFO {
LPVOID lpBaseOfDll;      
DWORD SizeOfImage;       
LPVOID EntryPoint;       
} MODULEINFO, *LPMODULEINFO;

GetModuleInformation( hProcess, hMod, lpmodinfo, DWORD cb );

DWORD My_process_size =  lpmodinfo -> SizeOfImage;   // так можно?                  



Это сообщение отредактировал(а) Helicopterr - 16.10.2005, 23:23


--------------------
people can fly
PM MAIL   Вверх
Neitron
Дата 17.10.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: 2
Всего: 5



Цитата

lpmodinfo -> SizeOfImage;

Дык тебе нужно научиться работать с СИ++ а не уже приступать к WinAPI
lpmodinfo - не указатель на объект а сам объект. А к объекту нужно обращаться через точку.
DWORD My_process_size = lpmodinfo.SizeOfImage;
Кстати именно этим меня бесит Дельфя.


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Helicopterr
Дата 18.10.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



о госпади. Ну извини, я учусь только...
На счёт lpmodinfo -> SizeOfImage - так писал GremlinProg.
Neitron если разобрался скажи лучше что со структурой _MODULEINFO делать.
а то ведь не работает...


--------------------
people can fly
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.