본문 바로가기

Delphi/간단하게

간단하게 dll로 값을 저장하고 불러오기

1. Classes를 추가합니다.

uses

Classes;

2. 값을 저장하고 불러올 Packed record를 만듭니다.

type

  TPerson = Packed record

    sName : Array[1..50] of Char;

    nAge   : Integer;

  end;

  //저장할 데이터의 크기를 고정시켜줍니다.


var

  Person : TPerson;

꼭 record를 써야하는건 아니지만 데이터 크기 만큼 끊어 읽어야 하는 귀찮음이 있어

단순 값을 저장하고 불러올 경우엔 이 방법이 사용하기가 편리합니다.


3. dll로 저장합니다.

procedure WriteDll;

var

  sFilePath : string;

  Stream   : TMemoryStream;

begin

  sFilePath := '저장될 경로명' + '파일명.dll';


  Stream := TMemoryStream.Create;


  try

    Stream.Clear;

    Stream.Write(Person, SizeOf(TPerson));

    Stream.SaveToFile(sFilePath);

  finally

    Stream.Free;

end;

4. dll로 불러옵니다.

procedure ReadDll;

var

  sFilePath : string;

  Stream   : TMemoryStream;

begin

  sFilePath := '불러올 경로명' + '파일명.dll';


  Stream := TMemoryStream.Create;

  FillChar(Person, Sizeof(TPerson), #0);  //공백으로 채워줍니다.


  try

    Stream.LoadFromFile(sFilePath);

    Stream.Position := 0;

    Stream.Read(Person, SizeOf(TPerson));

  finally

    Stream.Free;

//공백으로 채웠기 때문에 Trim을 사용해 문자열의 양쪽 공백을 제거한 뒤 사용합니다.

  ShowMessage(Trim(Person.sName));

end;

Stream으로 저장하고 불러올 때, Stream을 암호화 하게 되면 dll을 열어 보았을 때 정보를 알 수 없게 할 수도 있습니다.

다음에 시간나면 강좌로 알려드리도록 하겠습니다.

반응형