Melhores recursos para a conversão de C / C ++ dll cabeçalhos para Delphi?
Pergunta
Um site bastante abrangente explicando as dificuldades e soluções envolvidas no uso de uma dll escrito em C / C ++ e a conversão do arquivo de cabeçalho .h para delphi / pascal foi enviada para uma lista de discussão que eu estava em recentemente, então eu pensei que 'd compartilhá-lo, e convidar outras pessoas para postar outros recursos úteis para isso, sejam eles links, ferramentas de conversão, ou livro / títulos de papel.
Um recurso por resposta, por favor, por isso vamos acabar com os mais populares / melhores recursos borbulhando ao topo.
Solução
Ao longo em de Rudy Delphi Canto , ele tem um excelente artigo sobre as armadilhas de conversão de C / C ++ para Delphi . Na minha opinião, esta é uma informação essencial ao tentar esta tarefa. Aqui está a descrição:
Este artigo é destinado a todos os que necessidades para traduzir cabeçalhos C / C ++ para Delphi. Eu quero compartilhar algumas das armadilhas que você pode encontrar quando conversão de C ou C ++. Este artigo não é um tutorial, apenas uma discussão de problema frequentemente encontrado casos. Ele foi criado para o novato, bem como para os mais experientes tradutor de C e C ++.
Ele também escreveu um " Conversão Helper Package " que instala no IDE Delphi que ajuda na conversão de código C / C ++ para Delphi:
(fonte: rvelthuis.de )
Seus outros artigos relevantes sobre este tema incluem:
Outras dicas
artigo em Delphi canto de Rudy
Além disso, CodeGear hospeda uma ferramenta de tradução rudimentar chamado CToPas (escrito por Ural Gunaydin).
Gostaria de destacar o Biblioteca de APIs Jedi, é a tradução Delphi dos cabeçalhos do SDK do Windows.Pode poupar muito trabalho se você precisar traduzir cabeçalhos do SDK e é, claro, um bom exemplo de conversões!
Como o FreePascal visa a compatibilidade do Delphi, entre outras coisas, acho que o H2Pas também pode ser útil.
HeadConv do DrBob também é muito usado, embora eu concorde com Graza que a tradução manual é melhor.
use esta opção para que o alinhamento de bytes seja igual ao C/C++ e então você não precise adicionar bytes de preenchimento nas estruturas.
{$MINENUMSIZE 4}