Q&A

  • String 형을 DWORD 형으로 형변환 어케 하는지여.. ㅠㅠ
아~~~  10월의 첫날 이리 질문을 하나 올려 봅니다.

9월부터 계속 고민하다 안되어서 어케 하는지 좀 고수님들.. 바쁘시더라도.. 좀 힌트를 주시면
감사.. 또 감사 하겠습니다.

DWORD 의 숫자 값을 레지스터리로 저장을 한 후...

프로그램 시작 시 이 값을 읽어 다시 DWORD 에 넣어 주어야 되는데. 어케 형 변환을 시켜
주어야 되는지 몰라서요~~ ㅠㅠ

var
sSt : String;
dDw : DWORD;
begin
     sSt := '123456789012';
    dDW <- sSt 라는 값을 어케 넣어야 되는지 좀 가르쳐 주세여. 부디. ㅠㅠ
end;
      
2  COMMENTS
  • Profile
    구창민 2007.10.02 02:53
    안녕하세요..

    DWORD 값에 준헌님이 쓰신 값이 들어가긴 하나요?

    DWOPRD = Longword     0..4294967295      unsigned 32-bit


    저값은 DWORD 의 범위값을 넘어선거 같은데;;

    아래 DWORD 형을 레지스트리에 읽고 쓰는 함수를 참고하세요.. 저두 언젠가 퍼둔건데..

    그럼.. 즐거운 프로그래밍 하시길~

    function ReadDWORD(vKey, vName: String): DWORD;
    var
      iType: DWORD;
      iSize: DWORD;
      iResult: Array [0..3] of Byte;
      hkResult: HKEY;
    begin
      Result:=0;
      iType:=REG_DWORD;
      iSize:=4;
      if RegOpenKeyEx(HKEY_LOCAL_MACHINE,LPTSTR(vKey), 0, KEY_READ, hkResult)<>ERROR_SUCCESS then
        Exit;
      if RegQueryValueEx(hkResult,LPTSTR(vName),Nil,@iType,@iResult,@iSize)=ERROR_SUCCESS then
        begin
          Result:=iResult[0]+(iResult[1] SHL 8)+(iResult[2] SHL 16)+(iResult[3] SHL 24);
        end;
    end;

    function WriteDWORD(vKey, vName: String; iValue: DWORD): Boolean;
    var
      iType: DWORD;
      iSize: DWORD;
      hkResult: HKEY;
      ibValue: Array [0..3] of Byte;
    begin
      Result:=False;
      if RegOpenKeyEx(HKEY_LOCAL_MACHINE,LPTSTR(vKey), 0, KEY_WRITE, hkResult)<>ERROR_SUCCESS then
        Exit;
      iType:=REG_DWORD;
      iSize:=4;
      ibValue[0]:=(iValue AND $000000FF);
      ibValue[1]:=(iValue AND $0000FF00) SHR 8;
      ibValue[2]:=(iValue AND $00FF0000) SHR 16;
      ibValue[3]:=(iValue AND $FF000000) SHR 24;
      if RegSetValueEx(hkResult,LPTSTR(vName),0,iType,@ibValue[0],iSize)=ERROR_SUCCESS then
        Result:=True;
    end;



  • Profile
    송준헌 2007.10.02 23:07
    아.. 감사합니다. ^^* 정말 감사.. 감사.. 감사.. 합니다.