En théorie, on peut utiliser une DLL écrite dans n'importe quel langage
J'avais traité ce sujet dans un article de "Panoramic Le Mag". Voici ce que j'avais écrit à l'époque :
----------------------
6. Cas d'une DLL quelconque
FreeBASIC est livré avec un nombre impressionnant de bibliothèques d'importation et de fichiers d'en-têtes pour une grande variété de DLLs. Toutefois, si la DLL que vous voulez utiliser ne figure pas dans la liste, il vous faudra créer vous-même les fichiers nécessaires.
6.1. La bibliothèque d'importation
Cela ne concerne que Windows, puisque Linux n'en a pas besoin.
Soit une XXX.dll. Il faut tout d'abord créer un fichier de définitions. C'est un simple fichier texte contenant la liste des fonctions exportées par la DLL. On peut l'obtenir avec un utilitaire tel que tiny_impdef (fourni avec le compilateur TCC dont nous avons déjà parlé [réf. 2]) ou pexports qui est fourni avec FreeBASIC. On obtient ainsi le fichier XXX.def. Ensuite, on crée la bibliothèque d'importation au moyen de l'utilitaire dlltool fourni avec FreeBASIC :
pexports XXX.dll > XXX.def
dlltool -D XXX.dll -d XXX.def -l libXXX.dll.a
6.2. Le fichier d'en-têtes
Pour ce fichier, il n'y a pas de miracle : il faut déjà l'avoir, sous une forme ou une autre !
La plupart des DLLs en licence libre sont livrées avec un fichier d'en-têtes prévu pour le langage C et portant l'extension .h. Il faut le traduire en FreeBASIC, soit manuellement, soit avec un utilitaire tel que h_2_bi.
----------------------
Effectivement, je n'ai pas repris ce thème dans la doc de FBPano, mais je pourrais l'ajouter.
Note : la bibliothèque d'importation n'est pas nécessaire si l'on place la DLL dans le répertoire de l'exécutable.