Vinculando arquivos C .OBJ no aplicativo Delphi, resolvendo dependências padrão C

StackOverflow https://stackoverflow.com/questions/1966692

  •  21-09-2019
  •  | 
  •  

Pergunta

Compilei libxml2 com o compilador de linha de comando BCC 5.5, agora tenho muitos arquivos .OBJ que gostaria de vincular ao meu aplicativo Delphi. Infelizmente, recebo muitos erros "insatisfeitos para a declaração externa ou externa", apontando para funções padrão da biblioteca C como memcpy, aberta, recv etc ... O que devo fazer para compilá -lo corretamente? Eu gostaria de evitar dependendo do msvcrt.dll ou em qualquer outra biblioteca externa.

Desde já, obrigado!

Foi útil?

Solução

Dependendo da versão do Delphi que você possui, deve haver uma unidade chamada CRTL.DCU com a qual você pode vincular. Basta usar a diretiva $ L para cada arquivo .OBJ em uma unidade que também usa o CRTL. Você também pode precisar "usar" outras unidades, como Windows, Winsock, etc ... O objetivo é fornecer os símbolos e funções para resolver durante a fase de link.

Esta é a mesma técnica usada para vincular estaticamente no código DataSNAP TCLIENTDATASET usado para criar midas.dll.

Outras dicas

Você deve ler o artigo de Rudy aqui "Usando arquivos de objeto C em Delphi"

Não use essas funções, mas reescreva -as para chamar as funções do sistema operacional (Kernel32/System32) diretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top