|
답변 너무너무 감사드립니다..
즐거운 하루 보내세요~
홍용혁 님이 쓰신 글 :
: FileMapObj 는 HWND가 아니라 HANDLE 입니다.
: 그리고 파일연동안할때는 NULL 이 아니라 0xFFFFFFFF 입니다.
: 그리고 전체적으로 소스를 수정했는데 다음과 같습니다.
:
: 앗... 그리고 타입이 integer 이기때문에
: Edit 컴포넌트 쓰신것은 테스트상 좋지 않군요.
: Edit에 영문등을 입력하면 에러가 납니다.
: CSpinButton 같은걸 이용하시면 좋을텐데...
: 그래서 이예제에서 테스트할때는 Edit에 숫자만 입력하십시오.
: 다른거 넣으면 에러날지도 모릅니다.
:
: //---------------------------------------------------------------------------
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: HANDLE FileMapObj;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: FileMapObj = CreateFileMapping(
: (HANDLE)0xFFFFFFFF, // 파일 연동 안함.
: NULL, // 보안문제 신경 안 씀.
: PAGE_READWRITE, // 읽고 쓸 것임.
: 0, // 크기 상위 DWORD
: sizeof(int), // 크기 하위 DWORD
: "WhatTheHeck" // 메맵 파일의 이름
: );
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::FormDestroy(TObject *Sender)
: {
: CloseHandle(FileMapObj);
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: int *buf;
: buf = (int *)MapViewOfFile(FileMapObj, FILE_MAP_WRITE, 0, 0, 0);
: if(buf==NULL)
: {
: UnmapViewOfFile( (void*)buf );
: CloseHandle(FileMapObj);
: return;
: }
: *buf=Edit1->Text.ToInt();
: UnmapViewOfFile( (void*)buf );
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: int *buf;
: buf = (int *)MapViewOfFile(FileMapObj, FILE_MAP_READ, 0, 0, 0);
: if(buf==NULL)
: {
: UnmapViewOfFile( (void*)buf );
: CloseHandle(FileMapObj);
: return;
: }
: ShowMessage(IntToStr(*buf));
: UnmapViewOfFile( (void*)buf );
:
: }
: //---------------------------------------------------------------------------
:
|