C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[5173] 메모리맵에 대한 질문입니다. ^^
Applekiss [] 3070 읽음    2001-02-05 10:11
/*
         메모리 맵 스터디
                                */

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND FileMapObj;
static LPVOID lpvMem = NULL;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        FileMapObj = CreateFileMapping(
                NULL,             // 파일 연동 안함.
                NULL,             // 보안문제 신경 안 씀.
                PAGE_READWRITE,   // 읽고 쓸 것임.
                0,                // 크기 상위 DWORD
                sizeof(int),      // 크기 하위 DWORD
                "WhatTheHeck"     // 메맵 파일의 이름
        );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
        CloseHandle(FileMapObj);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        LPVOID lpvMem;
        lpvMem = MapViewOfFile(FileMapObj, FILE_MAP_WRITE, 0, 0, 0);
        lpvMem = (LPVOID)StrToInt(Label2->Caption);
        ShowMessage((int)lpvMem);
        //UnmapViewOfFile(lpvMem);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        LPVOID lpvMem;

        if(!FileMapObj)
                ShowMessage("huk");
        lpvMem = MapViewOfFile(FileMapObj, FILE_MAP_READ, 0, 0, 0);

        if(lpvMem)
                ShowMessage((int)lpvMem);
        //UnmapViewOfFile(lpvMem);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        if( Key == 0x0d)
        {
                Label2->Caption = Edit1->Text;
        }
}
//---------------------------------------------------------------------------
시스템 환경: 윈도우2000프로페셔널
             펜티엄3 650Mhz
             메모리  256M

안녕하세요?
후킹을 공부하면서 메모리맵을 공부하는데 막히는 부분이 있어서 질문드립니다.
메모리맵을 테스트하기 위해서,
버튼 1을 클릭하면 라벨2의 내용이 메모리 맵에 써지고
버튼 2를 클릭하면 그 메모리맵의 내용을 읽어 ShowMessage를 통해
나타내는 간단한 메모리맵 테스트 프로그램을 짜봤는데요...

55라는 숫자를 버튼1을 이용해서 메모리맵에 쓰면..
2837474 <---- 버튼2를 눌렀을때는 이런 숫자가 튀어나옵니다..

버튼2를 클릭할때마다 값이 다르게 나옵니다..
메모리맵에 값이 들어가지 않아서...자꾸 재할당되고 있는건지...
도움 부탁드리겠습니다.....


+ -

관련 글 리스트
5173 메모리맵에 대한 질문입니다. ^^ Applekiss 3070 2001/02/05
5176     Re:메모리맵에 대한 질문입니다. ^^ 홍용혁 3138 2001/02/05
5179         Re:Re:메모리맵에 대한 질문입니다. ^^ AppleKiss 2884 2001/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.