Char** et Delphi

Résolu
ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005 - 30 nov. 2004 à 11:18
ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005 - 13 déc. 2004 à 19:28
Bonjour,
Je suis débutant en Delphi et je souhaiterais utiliser une DLL programmée en C++. J'utilise une méthode qui retourne un char**, mais je ne sais pas comment interpreter cela en Delphi...
Si vous avez des suggestions je suis preneur.
j'ai essayé d'utiliser un type pointeur sur string (^string ou ^PChar) mais sans succés.

D'avance merci pour l'aide.
Emmanuel.

3 réponses

ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005
13 déc. 2004 à 19:28
Merci à sovitec et à Mauricio,
J'ai laissé tomber les char** car je n'ai pas reussit à les mettre en oeuvre.
Le type Delphi correspondant aux char* est PChar, donc naturellement (ou presque), le type correspondant aux char** devrait etre ^PChar. Toutefois lors du passage d'un char** par une DLL C++, Delphi ne fait pas le lien entre les objets... Et il m'est impossible d'acceder à mes objets...
Par contre en utilisant une structure contenant un char* et une reference sur un char*, c'est à dire une liste chainée contenant des char*, cela marche sans probleme.

Voila.
Bonne continuation.

Emmanuel.
3
sovitec Messages postés 47 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 24 juillet 2006
30 nov. 2004 à 17:49
Est ce que ce ne serait pas tout simplement ^^PChar ?
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 nov. 2004 à 18:08
Tu dois déclarer ta dll comme cela (enfin je pense) avant de l' utiliser :

{$R *.DFM}

// DLLs:
function NomDeMaFonction(tu peux mettre des paramettres): Char; stdcall; external 'C:\path de ma dll\madll.dll';

ou pour une string:

function NomDeMaFonction(tu peux mettre des paramettres): ShortString; stdcall; external 'C:\path de ma dll\madll.dll';

Alors sinon, je ne sais pas si c' est stdcall que tu dois utiliser mais essaye, si ça marche pas, fait F1 sur le mot que delphi te présente les alternatives ....

Mauricio :) [ttp://cindypos.planetaclix.pt ttp://cindypos.planetaclix.pt]
[mailto:cindypos@planetaclix.pt mailto:cindypos@planetaclix.pt]
0
Rejoignez-nous