Um Rubem

Varios Rubens

 

RISOS!

 

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Rubem 
Nascimento da Rocha
Enviada em: sexta-feira, 2 de maio de 2008 16:53
Para: delphi-br@yahoogrupos.com.br
Assunto: RE: [delphi-br] Ajuda com dll dinâmica
Prioridade: Alta

 


TTipoFuncao = function(selection: integer; FileName: PChar): integer; stdcall;

Repare na notação 'stdcall' que coloquei na declaração do tipo TTipoFuncao. Vc 
esqueceu de definir isso!

Essa notação diz como será a convenção de chamada da função contida na DLL. A 
convenção 'stdcall' é a mais utilizada por funções contidas em DLLs estáticas. 
Usei esta notação deduzindo que a referida função fizesse uso da mesma, mas o 
ideal é vc consultar a documentação existente da DLL indicando, por meio de 
exemplos que DEVEM acompanhar a documentação, qual a convenção de chamada a ser 
usada. Ah, vc naum sabe o que é convenção de chamada? Dá uma olhada no help do 
Delphi (procure por 'calling convention') que vc vai achar informações sobre 
isso.

Boa sorte!
Sds.

P.S.: O meu nome é no singular, e não no plural! ;-)

________________________________

To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
From: [EMAIL PROTECTED] <mailto:berdamzinho%40yahoo.com.br> 
Date: Fri, 2 May 2008 16:37:41 -0300
Subject: RE: [delphi-br] Ajuda com dll dinâmica

valeu ai rubens, desculpe perguntar essas coisas simples aqui, mas onde que 
estava o erro, desta forma que vc passou pelo menos n deu erro até agora.

Rubem Nascimento da Rocha <[EMAIL PROTECTED] 
<mailto:djpardalrocha%40hotmail.com> > escreveu:
Vamos dar uma melhorada:

type
TTipoFuncao = function(selection: integer; FileName: PChar): integer; stdcall;

var
lFuncao: TTipoFuncao;
lHandle: THandle;

begin
lHandle := LoadLibrary('Winppla.dll');
if lHandle> 0 then
begin
@lFuncao := GetProcAddress(lHandle, 'A_CreatePrn');
if not Assigned(lFuncao) then
ShowMessage('Função não encontrada!')
else if lFuncao(1,'ppla.txt') <> 0 then
beep;
FreeLibrary(lHandle);
end;
end;

Sds.

________________________________

To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
From: [EMAIL PROTECTED] <mailto:berdamzinho%40yahoo.com.br> 
Date: Fri, 2 May 2008 16:19:51 -0300
Subject: [delphi-br] Ajuda com dll dinâmica

AI galera, pesquisei na internet e achei alguns artigos sobre o carregamento de 
dll.

Fiz da seguinte maneira,

type
TTipoFuncao = function( selection:integer;FileName:pchar):integer;

var
funcao: TTipoFuncao;
Dll: THandle;

begin
Dll := LoadLibrary('Winppla.dll');
@funcao := GetProcAddress(Dll, 'A_CreatePrn');
Dll:=funcao(1,'ppla.txt');
if Dll <> 0 then
beep;

FreeLibrary(Dll);
end;

QUando tento executar isto, acontece o erro "The variable for selection is 
error". No título da msg de erro aparece o nome do método que estou tentando 
acessar. Pelo que parece a dll é carregada, mas parece que não encontra a 
função especificada.

Alguém tem alguma idéia do que possa ser??
Essa dll é uma dll de impressora, não é alguma criada por mim, será que tem 
haver alguma coisa disso???

----------------------------------------------------------
Uberdam Cavaletti
Formado em Tecnologia da Informação - Unoesc - Xxe
Pós-graduado em desenvolvimento Java - Unoesc - Xxe

---------------------------------
http://www.curricular.com.br/berdam

Visite
http://passandoveneno.blogspot.com
----------------------------------------------------------

---------------------------------
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!

[As partes desta mensagem que não continham texto foram removidas]

__________________________________________________________
Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
http://www.amigosdomessenger.com.br/

----------------------------------------------------------
Uberdam Cavaletti
Formado em Tecnologia da Informação - Unoesc - Xxe
Pós-graduado em desenvolvimento Java - Unoesc - Xxe

---------------------------------
http://www.curricular.com.br/berdam

Visite
http://passandoveneno.blogspot.com
----------------------------------------------------------

---------------------------------
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!

[As partes desta mensagem que não continham texto foram removidas]

__________________________________________________________
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a