错误:
  var
    Buffer:array of Char;
    keyhand:HKey;
    datasize:integer;
  begin
    RegOpenKey(HKEY_CURRENT_USER,'SoftWare\ChengSoft\VBScript Editor',keyhand);
    RegQueryValueEx(keyhand,item,0,0,0,@datasize);
    setlength(Buffer,datasize);
    RegQueryValueEx(keyhand,item,0,0,@Buffer,@datasize);
    RegCloseKey(keyhand);
  end;
_____________________________________________________________
正确:
  var
    Buffer:array[00..255] of Char;
    keyhand:HKey;
    datasize:integer;
  begin
    RegOpenKey(HKEY_CURRENT_USER,'SoftWare\ChengSoft\VBScript Editor',keyhand);
    RegQueryValueEx(keyhand,item,0,0,@Buffer,@datasize);
    RegCloseKey(keyhand);
  end;
_____________________________________________________________
问:如何以动态数组变量的形式,修改第一种方法,让其正确.

解决方案 »

  1.   

    错误:
      var
        Buffer:array of Char;
        keyhand:HKey;
        datasize:integer;
      begin
        RegOpenKey(HKEY_CURRENT_USER,'SoftWare\ChengSoft\VBScript Editor',keyhand);
        RegQueryValueEx(keyhand,item,0,0,0,@datasize);
        setlength(Buffer,datasize);
        RegQueryValueEx(keyhand,item,0,0,@Buffer,@datasize);
        RegCloseKey(keyhand);
      end;
    _____________________________________________________________
    正确:
      var
        Buffer:array[0..255] of Char;
        keyhand:HKey;
        datasize:integer;
      begin
        RegOpenKey(HKEY_CURRENT_USER,'SoftWare\ChengSoft\VBScript Editor',keyhand);
        RegQueryValueEx(keyhand,item,0,0,@Buffer,@datasize);
        RegCloseKey(keyhand);
      end;
    _____________________________________________________________
    问:如何以动态数组变量的形式,修改第一种方法,让其正确.
      

  2.   

    RegQueryValueEx(keyhand,item,0,0,0,@datasize);这句
      

  3.   

    RegQueryValueEx(keyhand,item,0,0,0,@datasize);是错误的