Bonjour ,
Nous avions une DLL codé en Delphi, qui fonctionne très bien sous XP. Cette DLL pouvait être utilisée par une application écrite en Delphi ou par Labview ( codé en C)
Sur sa migration en W7-64 et XE2 :
Nous avons remplacés les Pchar(..) par des Pansichar(...) et cela fonctionne avec Labview , mais plus avec l'application Delphi. Dans l'application Delphi le seul et 1er caractères de la chaine passé en paramètre est récupéré par la DLL.
Nous avons remplacés ensuite les Pchar(..) par des Pwidechar(...) et cela fonctionne bien l'application Delphi, mais pas avec Labview. la chaine passé par Labview en paramètre et récupéré par la DLL ressemble à du chinois !.
voici les codes : avec une conversion en Pansichar (cas ou Labview fonctionne , mais pas l'application Delphi)
prototype de l'entête de la fonction dans LabView.
prototype de l'entête de la fonction dans la DLL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Int32_t chargeCompoGroupe(CStr chemin)
Appel de la fonction dans l'application delphi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part function chargeCompoGroupe(chemin:Pansichar):integer;sdtCall
et les codes : avec une conversion en Pwidechar (cas ou Labview ne fonctionne pas , mais l'application Delphi fonctionne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ... chargeCompoGroupe(Pansichar(Chemin))
prototype de l'entête de la fonction dans LabView.
prototype de l'entête de la fonction dans la DLL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Int32_t chargeCompoGroupe(CStr chemin)
Appel de la fonction dans l'application delphi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part function chargeCompoGroupe(chemin:Pwidechar):integer;sdtCall
Remarque : le paramètre reçue par la DLL est ensuite converti en string pour son utilisation par la DLL, et c'est bien dés que je reçois le paramètre qu'il est incorrect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ... chargeCompoGroupe(Pwidechar(Chemin))
un tuyau ?![]()
Partager