Erro na declaração do tipo PChar - D2005

Delphi

03/01/2006

Pessoal,

pq acontce o erro abaixo

[Error] Unit1.pas(30): E2410 Unsafe pointer variables, parameters or consts only allowed in unsafe procedure

isso ocorre nesta linha

var
   Computer: PChar;


Att

Wagner


Wagnermarrane

Wagnermarrane

Curtidas 0

Respostas

Caninha51

Caninha51

03/01/2006

Posta um trecho maior do código, num deu erro aki naum.


GOSTEI 0
Wagnermarrane

Wagnermarrane

03/01/2006

Posta um trecho maior do código, num deu erro aki naum.


procedure TForm1.BitBtn1Click(Sender: TObject);
var
   Computer: PChar;
   CSize: DWORD;
begin
Computer:=#0;
CSize:=MAX_COMPUTERNAME_LENGTH + 1;
try
    GetMem(Computer,CSize);
    if Windows.GetComputerName(Computer,CSize ) then
        ShowMessage(Computer);
finally
    FreeMem(Computer);
    end;
end;


ai esta o código todo....

e o erro [b:85838bef71][Error] Unit1.pas(30): E2410 Unsafe pointer variables, parameters or consts only allowed in unsafe procedure [/b:85838bef71]

continua.... to achando que é a instalação do meu delphi


GOSTEI 0
Caninha51

Caninha51

03/01/2006

Amigo, seu código funcionou perfeitamente aki.

tenta...
var
  Computer: String;
  CSize: DWord;
begin
  CSize := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Computer, CSize);
  Windows.GetComputerName(PChar(Computer), CSize);
  Showmessage(PChar(Computer));
end;



GOSTEI 0
Wagnermarrane

Wagnermarrane

03/01/2006

Amigo, seu código funcionou perfeitamente aki. tenta...
var
  Computer: String;
  CSize: DWord;
begin
  CSize := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Computer, CSize);
  Windows.GetComputerName(PChar(Computer), CSize);
  Showmessage(PChar(Computer));
end;


ai Caninha ... to achando que o meu delph esta com problemas pq o código q vc mandou não rodou na minha maquina..... q ruim..... porém dx eu tirar uma duvida a minha maquina é SO - Windows 2003 server e to com Delphi 2005..... sem problemas a função era para rodar corretamente, certo?

só q no seu código o erro que apresenta é este:

  SetLength(Computer, CSize);
  Windows.GetComputerName(PChar(Computer), CSize);


[b:52e31bdda4][Error] Unit1.pas(33): E2089 Invalid typecast[/b:52e31bdda4]

To quase desisitindo.... vou desinstalar o Delphi e reinstalar para solucionar minha duvida.... mas se tiver alguma idéia posta camaraad...

abraço


GOSTEI 0
Caninha51

Caninha51

03/01/2006

Rapaz, o problema eh com o typecast do Pchar.
Num sei se eh no teu 2005 ou em todos 2005 que acontecem este problema.

Eu num uso o 2005 ainda naum, ainda tow no 7.

Se aparecesse algum com o 2005 pra testar esse código neh?
Vamos esperar!:D

flw


GOSTEI 0
POSTAR