Existe-t-il un outil permettant de créer des fichiers d’en-tête C pour les DLL Delphi (Win32)?

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

  •  05-07-2019
  •  | 
  •  

Question

Jusqu'à présent, je n'ai vu que des outils et des informations relatives à la création de Delphi. code pour un fichier d’en-tête C donné.

Toutefois, dans le cas "Delphi d'abord", il existe une déclaration d'interface Delphi et une DLL générée, sans en-tête C. Existe-t-il des outils permettant d'extraire les informations nécessaires et de créer un fichier d'en-tête C pour une DLL?

Un tel outil pourrait être utile et gagner du temps dans les projets multilingues / multiplates-formes. Par exemple, avec le fichier d’en-tête C, il serait plus facile de créer automatiquement un code de liaison JNA Java avec jnaerator . La chaîne d'outils ressemble à ceci:

Source Delphi - > créer un en-tête C - > convertir en liaison Java - > utiliser les DLL Delphi de Java

Était-ce utile?

La solution

Le propre compilateur de Delphi peut générer des fichiers d'en-tête C / C ++ à partir de fichiers .pas, à l'aide du paramètre -JPHNE.

Autres conseils

Bien que cela fonctionne en théorie, de nombreuses DLL Delphi utilisent des conventions d'appel telles que register, ne compilent pas les enregistrements de manière standard en C, etc. Ensuite, il y a les problèmes RTL, les problèmes de mot d'état du coprocesseur, etc.

La plupart des compilateurs C peuvent probablement contourner ce problème en ajoutant des pragmas, mais je doute que tout le travail de liaison à Java le mange.

Ainsi, à moins que la DLL ne soit conçue dans cet esprit, cela fonctionnera probablement plus souvent que cela ne le sera.

Lire et analyser l’en-tête de Delphi n’est cependant pas si difficile. Pascal est plus facile à analyser et à transformer que par ex. C. FPC (Free Pascal) dispose d’un package d’analyseur pascal utilisé pour son outil de documentation qui peut être réorganisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top