Page 1 sur 1
Utiliser une dll pb en C
Publié : mar. 15/juil./2025 7:35
par microdevweb
Bonjour a tous,
Cela fait longtemps que je n'ai rien posté. Quelqu'un, a-t-il déjà essayé d'utiliser une dll PB avec Visual studio en C.
Merci
Re: Utiliser une dll pb en C
Publié : mar. 15/juil./2025 14:39
par threedslider
Bonjour,
C'est faisable mais marche pas à cause l'interne des variables PB qui sont pas compatibles avec C. A moins que sur Backend C c'est possible mais faut tester cela.
Re: Utiliser une dll pb en C
Publié : mer. 16/juil./2025 9:13
par Fred
Si ca marche parfaitement, une DLL est independante du language utilisé pour la créer.
Re: Utiliser une dll pb en C
Publié : mer. 16/juil./2025 16:36
par threedslider
Ok je confirme ce que Fred a dit, j'ai fait une erreur de ma part
pour tester faut faire sur PB de créer un dll avec l'option ShareDll, voici le code :
Code : Tout sélectionner
ProcedureDLL.i MyFunctionADD(num1.i, num2.i)
Print(Str(num1+num2))
ProcedureReturn num1 + num2
EndProcedure
Ensuite pour faire tester sur Visual C que tu pourra le faire (moi j'utilise CPP donc C++), le code ici :
Code : Tout sélectionner
#include <Windows.h>
#include <iostream>
typedef int(__cdecl* MYPROC)(int num1, int num2);
int main()
{
HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
hinstLib = LoadLibrary(TEXT("MyTestDll.dll"));
if (hinstLib != NULL)
{
ProcAdd = (MYPROC)GetProcAddress(hinstLib, "MyFunctionADD");
if (NULL != ProcAdd)
{
fRunTimeLinkSuccess = TRUE;
std::cout << (ProcAdd)(150, 2000);
}
FreeLibrary(hinstLib);
}
return 0;
}
Voilà j'espère que cela t'aidera beaucoup
PS: n'oublie pas de copier la dll dans le programme crée par Visual Studio

Re: Utiliser une dll pb en C
Publié : ven. 18/juil./2025 8:07
par microdevweb
Bonjour à tous,
Merci pour vos réponses qui vont certainement m'être utiles. J'avoue que j'avais essayé avec un fichier include.h comme pour une dll écrite en c, ce qui n'avait pas fonctionné. Je vais un peu fouiller de ce côté. Et publierais un code si cela fonctionne.
Remarque : C'est un projet de détection de métaux sur tapis roulant par XRF. (donc je me doute que une dll écrite en pb a peu de change d'être accepté)
Cependant, je me suis créé un petit programme en Pb qui simule 10 STM32 dual core (qui vont envoyer les données lues par le convertisseur anagogique digital vue TCP ip et cela fonctionne parfaitement.
