j'ai une DLL (écrite en C++) toute simple, qui prend un tableau (array) de 3 floats en argument et qui place la somme des 2 premier éléments dans le 3éme élément.
le code C ++:
Code : Tout sélectionner
#include <stdio.h>
extern "C"
{
__declspec(dllexport) void MyFunction(float*);
}
void MyFunction(float* myData)
{
myData[2] = myData[0] + myData[1];
}
Mais en PB, je n'y arrive pas, voila mon code PB d'accés a la DLL :
Code : Tout sélectionner
Dim tableau.f(3)
tableau(0)=1
tableau(1)=2
tableau(2)=666666
;Debug tableau(2)
PrototypeC.f MyFunction(tableau.f) ; PrototypeC ou Prototype ? dll type win ou C ?
If OpenLibrary(0, "MyDLL.dll")
MyFunction.MyFunction= GetFunction(0,"MyFunction")
If MyFunction = 0
Debug "Fonction non trouvée dans la DLL ..."
End
EndIf
Else
Debug "DLL non trouvée..."
End
EndIf
Debug MyFunction.MyFunction ;renvoit un handle ? -->268439769
Autre question, a quoi ressemblerait de code de la DLL écrit en PB ? Merci ...