Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 19:40   #1
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию Работа с памятью WinApi

Ребят помогите организовать программку!
вопрос:
Написать приложение, реализующее проецирование в память файла c:\flexlm\license.dat с последующим освобождением памяти. Создать снимок процессов в системе до и после создания проекции файла.

вот первую часть сделал! ТОк стал вопрос "с последующим освобождением памяти".
и вторую не придумаю вот что получилось!

Код:
#include <windows.h>
#include <winbase.h>
#include <iostream.h>
#include <conio.h>
void main()
{
  HANDLE hFile ; /* дескриптор файла*/
   HANDLE hMapFile; /* дескриптор объекта проецируемый файл */
   
   char * lpcTheFile = 
"C:\\flexlm\\license.dat"; /* файл, который обрабатывается*/
  /* Создание объекта  файл */
  hFile = CreateFile(lpcTheFile, /*указатель на имя файла */
         GENERIC_READ , /* атрибут доступа файлу */
          0,   /* совместный доступ */
          NULL, /* атрибут защиты */
          OPEN_EXISTING , /* атрибут открытия файла */
          FILE_ATTRIBUTE_NORMAL, /*атрибут файла*/
          NULL);  /* файл шаблона */
  if (hFile != INVALID_HANDLE_VALUE) /*   файл  открыт */
   /* Сообщение об успешном открытии  файла*/
      cout << "Open file Ok"<< endl;
  else /*   файл не создан */
      /* Сообщение об ошибке создания  файла*/
      cout << "Error open file "<< endl;
  /* Создание объекта  "проекция файла"  */
  hMapFile = CreateFileMapping(hFile,  /* Текущий дескриптор файла */
    NULL,                          /* Стандартная защита*/
    PAGE_READONLY,  /* Разрешение чтения */
    0,                                 /* Макс.размер объекта */
    0,                                  /* Мин.размер объекта */
    NULL);            /* Имя объекта отображения */
if (hMapFile != NULL) /*  проекция  создана */
  /* Сообщение об успешном создании  проекции*/
      cout << "Create MapFile Ok"<< endl;
  else /*   проекция не создана */
    /* Сообщение об ошибке создания  проекции*/
    cout << "Error create MapFile "<< endl;
    /*Закрытие дескрипторов*/
    CloseHandle(hMapFile);
   CloseHandle(hFile);
  getch();
  }

Последний раз редактировалось Stilet; 20.04.2010 в 13:24.
bondleha вне форума Ответить с цитированием
Старый 20.04.2010, 13:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

UnmapViewOfFile(hMapFile ) перед CloseHandle(hMapFile);
Думаю этого будет достаточно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 13:51   #3
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию

а вот с этим как помагите??Создать снимок процессов в системе до и после создания проекции файла.
bondleha вне форума Ответить с цитированием
Старый 20.04.2010, 13:53   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А по ссылке пошариться лень?
http://www.delphiworld.narod.ru/base...es_viewer.html
Или вот проще
http://www.delphiworld.narod.ru/base...processes.html
Просто выполняй до маппирования и после.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 13:57   #5
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию

а зачем делфи если у мя си!!
bondleha вне форума Ответить с цитированием
Старый 20.04.2010, 14:16   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да ты примеры поанализируй.
Функции отуда посмотри как используются, и если не понимаешь погугли п этим функциям.

Набери на http://www.msdn.ru/ в поиске Taking a Snapshot and Viewing Processes - получишь пример на Си
Или вот еще:
http://sisadminfront.6bb.ru/viewtopic.php?id=250
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 14:32   #7
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию

все спасибо!! Все получилось!!
bondleha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с памятью getUp Общие вопросы C/C++ 6 19.01.2010 01:11
С# работа с памятью Anton07 Помощь студентам 0 13.12.2009 23:06
Работа с памятью. nazavrik Общие вопросы C/C++ 0 07.10.2009 23:17
WinApi работа с памятью, помогите! casper123 Помощь студентам 5 15.09.2008 08:13
Работа с памятью Shurik Hacker Общие вопросы Delphi 7 22.06.2007 20:51