Erro em Função

24/11/2005

0

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;


Valdirdill

Valdirdill

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar