Pesquisar Neste Blog 1

Como Linkar um OBJ ao Executavel

0

Como Linkar um OBJ ao executavel


Primeiro voce deve "linkar" o OBJ ao seu executavel. No Delphi , isto eh feito com a diretriz de compilacao $L. Fica, na sua unit principal, assim:

{$L MyOBject.OBJ}

Incluindo as chaves.

Logo depois, voce deve declarar a funcao contida em MyObject.OBJ da forma usual. Voce precisara conhecer os parametros usados pela mesma, bem como o tipo e a ordem em que sao passados. Voce deve incluir tambem a diretriz PASCAL ou CDECL. Sugiro tentar primeiro com PASCAL. Ficaria assim (na secao implementation:

function (Parametro1 : TipoDoParametro1, Parametro2 : TipoDoParametro2): TipoDoRetorno; pascal;
se nao der certo, tente:

function (Parametro1 : TipoDoParametro1, Parametro2 : TipoDoParametro2): TipoDoRetorno; cdecl;
caso nao seja uma funcao e sim uma procedure, tente

procedure (Parametro1 : TipoDoParametro1, Parametro2 : TipoDoParametro2);
pascal;
ou

procedure (Parametro1 : TipoDoParametro1, Parametro2 : TipoDoParametro2);
cdecl;
Se voce nao sabe quais os parametros usados pela funcao/procedure, uma solucao seria linkar o seu OBJ num programa qualquer e disassembla-lo. Ai pelo menos voce sabera a quantidade e o tipo de cada parametro. De qualquer forma, para saber para que serve cada um, tera que ser na tentativa e erro...a nao ser que voce tambem tenha paciencia para analisar o codigo disassemblado.

OBS: Se o seu OBJ nao estiver num formato reconhecivel pelo LINK do Delphi (um formato similar ao COFF), voce pode tentar outros Linkers, e criar uma dll. Existem varios linkers gratuitos, que reconhecem varios formatos (exemplos, sao lcclnk, djlnk, walk2lnk e o proprio linker da microsoft...tambem gratuito).

Postar um comentário

0 Comentários
* Por Favor, Não Faça Spam Aqui. Todos os Comentários São Revisados Pelo Administrador.
Postar um comentário (0)

#buttons=(Aceito !) #days=(365)

COOKIES: Esse Site Guarda Estatísticas de Visitas Para Melhorar a Sua Experiência de Navegação e Disponibilizar Funcionalidades Adicionais, Saiba Mais em Nossa Política de Privacidade
Aceito !