Jump to content
Fórum Script Brasil
  • 0

Duvida Com @


darth_ivan
 Share

Question

3 answers to this question

Recommended Posts

  • 0

Olá,

Se eu não me engano quando se tem @ antes da variável, você está pegando o conteúdo de um endereço de memória. Dê uma olhada em ponteiros...

Ex:

var

a, b: ^integer; // declarando um ponteiro

c: integer;

begin

a:=b; // a recebe o valor de b

c:[email protected]; // c recebe o conteudo de a;

end;

obs: Se tiver erro, alguém me corrija...

abs.

Link to comment
Share on other sites

  • 0

opa

é isso mesmo, se usa o @ pra se passar/acessar

ponteiros...

É usado principalmente quando vai ser passadas

variaveis entre EXE-DLL por exemplo, pra permitir

que a DLL por exemplo tenha acesso de leitura e

escrita naquela variavel...

claro existem diversas maneiras de se fazer isso,

mas uma delas é usando o @ pra indicar aonde está

alocada a variavel na memoria

Exemplo simples

type
  TQlqcoisa = packed record
     Um: Integer;
     Dois: Integer;
     Tres: Integer;
  end;
  PQlqcoisa = ^TQlqcoisa;

(* EXE *)

function Bla(Parametro: LongInt); StdCall; external 'minhadll.dll';

procedure Ble;
var
  Qlqcoisa: TQlqcoisa;
begin
  Bla(Integer(@Qlqcoisa));
  //Aqui a dll definiu as variaveis Um pra valor 1, Dois pra 2 e Tres pra 3 =p
end;

(* DLL *)

function Bla(Parametro: LongInt); StdCall;
begin
  PQlqcoisa(Parametro)^.Um := 1;
  PQlqcoisa(Parametro)^.Dois := 2;
  PQlqcoisa(Parametro)^.Tres := 3;
end;

abs

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...