Bonjour à tous

On lit souvent des problèmes sur l'utilisation de DLL/API depuis PB, mais moi, mon problème est quelque peu différent. Je n'arrive pas à utiliser une fonction présente dans une DLL que j'ai générée via PB.

Dans une première application, j'ai créé, dans ma PBL, une fonction.
Lorsque je crée l'exécutable, je demande la génération de DLL au lieu de PBD. ça, pas de soucis..

Maintenant, je veux utiliser cette DLL depuis une autre application PB.


Dans cette deuxième application PB, j'ai déclaré la fonction en 'Local External Function' tel quel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FUNCTION int mafonction ( ref String param1, ref string param2) LIBRARY  "madll.dll" ALIAS FOR "mafonction"
l'appel de la fonction, plant lors de l'exécution. Il ne trouve pas la fonction dans ma DLL (erreur R0015). Etrange.
J'ai donc retenté la même chose en rajoutant le ';ansi' à la fin de l'alias, au cas où. Idem, ça plante.

Pour être certain que ma fonction se trouve dans la dll, j'ai ouvert cette DLL via un éditeur de DLL. Et là, surprise, ma fonction a l'air bien présente, mais elle ne se nomme pas 'mafonction', mais '_getVtableInfo_mafonction@12' .

Je ne comprends pas mais j'ai tout de même modifié mon alias de ma fonction dans sa déclaration, et au lieu de mettre ALIAS FOR 'mafonction', j'ai mis ALIAS FOR '_getVtableInfo_mafonction@12'

Mais sans succès, même avec le ';ansi' derrière..

Alors, suite à ça, j'ai plusieurs question:
- Peut-on utiliser les DLL générées via PB dans d'autres applications ? Si non, quel est l'intérêt de pouvoir créer des DLL ?
- Qu'ai-je fait ou que n'ai-je pas fait ?
- Pourquoi je ne retrouve pas le véritable nom de ma fonction dans la DLL ?

SI quelqu'un a eu ce même problème ou alors a réussi à utiliser une DLL Powerbuilder dans d'autres applications (PB ou autre), pourrait il me conseiller ?

Merci d'avance..
Kalini