j'essai d'appeler une fonction d'une DLL ecrite en C en delphi
les premieres fonctions de la DLL fonctionnent mais je n'arrive pas a
appeler la suivante en delphi.
appel en C: WriteContinuous(leds); (avec unsigned char leds[9];)
En delphi et chargement statique de la DLL
J'ai essayer pas mal de truc mais sans succes
function WriteContinous(var Pdata_to_write:Pchar):integer; stdcall; external 'atusbhid.dll';
var
Pdata_to_write:Pchar;
data_to_write:array[0..8] of char;
Salut,
c'est quoi l'erreur ?
donne le massage
as-tu la source de la dll ?
es-tu sur de la déclaration de la fonction ?
si non essaye Cdecl à la place de StdCall Extrait de l'aide Delphi :
La convention cdecl est utile pour les appels de fonctions à partir de bibliothèques partagées écrites en C ou en C++
Non je ne crois pas qu'il y ait une autre manière d'appeler une fonction où procedure depuis une Dll.
Mais si tu arrives à avoir la source on pourra vérifier la syntaxe
je pense que vus ce que tu dis plus haut il faudrait l'ecrire :
type
TStr9 = string[9];
procedure WriteContinous(Leds : TStr9);
pour (c++) :
void WriteContinous( ... ) { ... }
<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
Vous n’avez pas trouvé la réponse que vous recherchez ?
c++ char* = delphi string
c++ void ident(){} = delphi procedure ident();
c++ type ident(){} = delphi function ident() : type;
donc
void STDCALL WriteContinuous(unsigned char *buffer)
{
unsigned char OutputReport[9];
OutputReport[0] = 0;
for (int c = 0; c < REPORTSIZE; c++)
OutputReport[c + 1] = buffer[c];
WriteReport(OutputReport);
}
=
procedure WriteContinuous(buffer : string);
var OutputReport : array[0..9] of char;
C : integer;
begin
OutputReport[0] := #00;
for c := 1 to REPORTSIZE do OutputReport[C] := Buffer[C];
WriteReport(OutputReport);
end;
si je ne fais pas d'erreur.
<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
Bonsoir...o desespoire elle ne veux toujours rien savoir cette .....perie de DLL
avec tous les exemples ci dessus ds tous les sens
ci-joint mon code si quelqu'un veut essayer la DLL estici