- Код: Выделить всё
- var
 pHost : PWChar;
 ...
 GetMem(pHost,512);
 ...
 FreeMem(pHost);
Строка FreeMem(pHost) вызывает ошибку.
Добавлено спустя 10 минут 3 секунды:
ДА, в дельфях код работает.
Модератор: Модераторы
var
  pHost   : PWChar;
...
  GetMem(pHost,512);
    ...
  FreeMem(pHost);
Mr.Smart писал(а):Что вы делаете с переменной между вызовов GetMem(pHost,512) и FreeMem(pHost);?
procedure TForm1.btnShareClick(Sender: TObject);
var
  A             : PShareInfo2Array;
  e,te         : DWORD;
  pHost       : PWChar;
  i              : Integer;
begin
  if (IsInit < 0) then begin
    exit;
  end;
  @NetShareEnum := GetProcAddress(hLibrary,'NetShareEnum');
  if (NOT Assigned(NetShareEnum)) then begin
    exit;
  end;
  GetMem(pHost,512);
  StringToWideChar(Trim(edHost.Text),pHost,512);
  if (NetShareEnum(pHost,2,@A,DWORD(-1),@e,@te,NIL) <> 0) then begin
    MessageBox(0,' <<<  ERROR!!!  >>> ','ВНИМАНИЕ',MB_ICONHAND);
    FreeMem(pHost);
    exit;
  end;
  if (e > 0) then begin
    for i := 0 to e - 1 do begin
      M.Lines.Add(String(A^[i].netname));
    end;
  end;
  FreeMem(pHost);
end;
var
 Host: WideString;
....
 Host:=UTF8Decode(Trim(edHost.Text));
 if (NetShareEnum(PWideChar(Host),.......
....
fwp писал(а):М.б. вы что подскажите?
Mr.Smart писал(а):Попробуйте так
- Код: Выделить всё
var
Host: WideString;
....
Host:=UTF8Decode(Trim(edHost.Text));
if (NetShareEnum(PWideChar(Host),.......
....
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1