Page 2 of 2

Re:

Posted: Tue Aug 28, 2012 12:39 pm
by pupsik
Admin wrote:
И, собственно, как его получать ? Примеры только на Сях (
Я попытался получить на Delphi.
Если вы используете Delphi2009 и выше - вместо PChar надо использовать PAnsiChar (как в VMProtectSDK.pas, так и в определении pBuf):

Code: Select all

function VMProtectGetCurrentHWID(Buffer:PAnsiChar; BufferLen: Cardinal): Integer; stdcall;
...
var pBuf:PAnsiChar; 
...
Все остальное правильно.
не все, размер буфера у него равен 0, а должен быть nSize.
вот так правильно:

Code: Select all

[b]function VMProtectGetCurrentHWID(Buffer:PAnsiChar; BufferLen: Cardinal): Integer; stdcall;[/b]
...
procedure TForm1.Button1Click(Sender: TObject);
  var pBuf:PAnsiChar;
  nSize:Integer;
begin
  nSize:=VMProtectGetCurrentHWID(nil,0);
  GetMem(pBuf,nSize);
  try
    VMProtectGetCurrentHWID(pBuf,nSize); //<<<<<<<<
    Memo1.Lines.Add(pBuf);
  finally
    FreeMem(pBuf);
  end;
end;
сорри что поднял старую тему :)

Re: VMProtectGetCurrentHWID

Posted: Wed Aug 29, 2012 7:41 am
by Admin
не все, размер буфера у него равен 0, а должен быть nSize.
Просмотрел :))