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]