Erro em Função

24/11/2005

1

Achei a função abaixo para pegar dados da BIOS. Só que não consigo executá-la. Dá um erro na linha ´if p^ in [#33..126, 169, 184] then´. Alguém poderia me ajudar?

function GetBiosInfoAsText: string;
var
p, q: pchar;
begin
q := nil;
p := PChar(Ptr($FE000));
repeat
if q <> nil then begin
if not (p^ in [10, 13, 32..126, 169, 184]) then begin
if (p^ = 0) and (p - q >= 8) then begin
Result := Result + TrimRight(String(q)) + 1310;
end;
q := nil;
end;
end else
if p^ in [33..126, 169, 184] then
q := p;
inc(p);
until p > PChar(Ptr($FFFFF));
Result := TrimRight(Result);
end;


Responder

Posts

24/11/2005

Edilcimar

não veja erro, a não ser que seja algo do tipo
if (p^ in [#33..126, 169, 184]) then
que apesar de não ter lógica as vezes não funciona, faça um debug


Responder

24/11/2005

Valdirdill

não veja erro, a não ser que seja algo do tipo if (p^ in [#33..126, 169, 184]) then que apesar de não ter lógica as vezes não funciona, faça um debug


Você testou a function e funcionou? Qual Delphi?


Responder

24/11/2005

Edilcimar

não, eu não testei, mas já tive problema com parenteses, por isto comentei


Responder

24/11/2005

Massuda

Posso estar enganado, mas desde a chegada do Windows 95 esse tipo de código (que acessa diretamente uma posição de memória fora do programa) não funciona. No caso, acho que você está lendo uma posição qualquer de memória dentro do seu programa.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira