Bonjour à tous,
Je suis en train de développer une DLL avec C++ Builder 6. Cette DLL utilise des fonctions et procédures déjà développées, mais en pascal, sous Delphi 6.
Afin d'accéder à ces fonctions dans mon projet C++ builder, je fait "Ajouter au projet", je sélectionne l'unité .pas qui m'intéresse, et j'inclu le fichier .hpp associé dans mon .cpp. Cela fonctionne très bien et j'étais satisfait du résultat, jusqu'à ce que je réalise que ma DLL exportait, en plus de la douzaine de fonctions souhaitées, toutes les fonctions de tous les .pas ajoutés au projet.
En tentant de simplifier au maximum le problème pour isoler mon erreur, je me suis rendu compte qu'il était très facilement reproductible :
- Dans Delphi 6, créér une unité 'TestUnit.pas', et implémenter une fonction 'myFunction'. Sauvegarder.
- Dans C++ Builder 6, crééer une nouvelle DLL 'TestDll', Ajouter TestUnit.pas au projet, et compiler.
TestDll exporte myFunction alors que je ne lui ai rien demandé (enfin, pas volontairement en tout cas). Pire, si TestUnit.pas utilise d'autres .pas, leurs fonctions seront également exportées par la DLL. Ma DLL exporte ainsi près de 4000 fonctions, ce qui ne fait pas très sérieux...
Voila, je voulais connaitre la cause de ces exports, et savoir comment les éviter.
Merci d'avance pour votre aide.
Partager