Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

rubens

Dúvida na conversão de procedure de .dll para .exe

Mensagens Recomendadas

rubens
procedure Validate; assembler;

asm

mov eax,ADDRESS

call eax

end;

seu fazer isso em uma dll funfa corretamente,porém se usar isso em um .exe da aparece ''acesso violado''... Usando Written e Creathread como fica em .exe ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Maou

Olá rubens, eu aqui estou tentando entender, o que você esta chamando.

assim MOV EAX,ADDRESS esta falando para o compilador MOVA O CONTEUDO DE ADDRESS PARA EAX, ao invés de passar o endereço,

que eu lembre a diretiva assembly e só usada no turbo pascal no delphi que utiliza o BASM para compilar não e mais necessário.

Exemplo de código

program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
function Soma(Z,X:integer):integer;
var
 Aux:integer;
begin
ASM
   MOV EAX,Z
   ADD EAX,X
   MOV Aux,EAX
END;
  Soma:=Aux;
end;
begin
writeln(Soma(1,6));
  readln;
end.

testado em delphi 5 e lazarus, no lazarus tem que colocar a diretiva {$ASMMODE intel} para funcionar.

Editado por Maou

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.