Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1656 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  declaration de fonction, C++ vers delphi

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

declaration de fonction, C++ vers delphi

n°559439
nico168
Posté le 05-11-2003 à 11:17:51  profilanswer
 

salut,
 
Un collegue a une appli qui accepte des plugins(une DLL).
Il faut que celle ci contienne une fonction exportée declarée commme ceci :

Code :
  1. extern "C" __declspec(dllexport) int ToFax  (std::list <CString *> Liste,
  2.            LPCSTR Directory,
  3.            LPCSTR FileOut,
  4.            LPCSTR Server,
  5.            LPCSTR User,
  6.            LPCSTR PassWord)


 
J'ai besoin d'ecrire un plugin en Delphi, mais je ne trouve pas comment declarer ma fonction ToFax, en fait je bloque sur le 1er argument.
 

Code :
  1. function ToFax (??????;repertoire:Pchar;FileOut:Pchar;secu1:Pchar;secu2:Pchar;secu3:Pchar):integer;cdecl;


 
vous avez une idée de comment déclarer l'équivalent d'un std::list <CString *> Liste en delphi ?
 
merci  :hello:  

mood
Publicité
Posté le 05-11-2003 à 11:17:51  profilanswer
 

n°559486
Kristoph
Posté le 05-11-2003 à 11:55:35  profilanswer
 

Oui, en fesant du C++
 
PS : ce n'est pas un troll, je suis serieux la :)
 
Ta fonction doit être écrite en C++, quitte à convertir ce paramètre en un conteneur utilsiable pour Delphi.


Message édité par Kristoph le 05-11-2003 à 11:58:11
n°559491
nico168
Posté le 05-11-2003 à 12:00:08  profilanswer
 

je dois comprendre quoi la ?
 
-que l'appli de mon collegue n'est pas en c++ conforme ?
-que c'est impossible a faire en delphi ?
-que tu n'en sais rien mais que t'avais envie dire qqchose ?

n°559493
chrisbk
-
Posté le 05-11-2003 à 12:01:14  profilanswer
 

heuh ben la le mec a pas joué fin :/
CString, std::list c'est des machins c++....

n°559494
Kristoph
Posté le 05-11-2003 à 12:03:18  profilanswer
 

nico168 a écrit :

je dois comprendre quoi la ?
 
-que l'appli de mon collegue n'est pas en c++ conforme ?
-que c'est impossible a faire en delphi ?
-que tu n'en sais rien mais que t'avais envie dire qqchose ?


 
Il faut comprendre qu'à mon avis, il n'y a aucun moyen propre d'acceder à un std::list<T> en Delphi. D'ou le besoin de passer par une fonction C++ intermédiaire chargée de convertir cette liste en un type utilisable plus facilement par Delphi.

n°559495
nico168
Posté le 05-11-2003 à 12:03:50  profilanswer
 

ok, merci
 
donc la solution serait de faire une DLL en c++ qui va me transformer un "std::list <CString *>" en qqchose utilisable par delphi, et d'appeler la fonction en delphi avec ca ?
 
la solution que je vois est de passé un LPCSTR en c++ lu comme un pchar en delphi qui contiendrais le nom des fichiers genre "fic1:fic2:fic3"
 
je vais commencer à coder ca, si vous voyez des objections, n'hesitez pas


Message édité par nico168 le 05-11-2003 à 12:14:24
n°559514
Kristoph
Posté le 05-11-2003 à 12:25:30  profilanswer
 

nico168 a écrit :

ok, merci
 
donc la solution serait de faire une DLL en c++ qui va me transformer un "std::list <CString *>" en qqchose utilisable par delphi, et d'appeler la fonction en delphi avec ca ?
 
la solution que je vois est de passé un LPCSTR en c++ lu comme un pchar en delphi qui contiendrais le nom des fichiers genre "fic1:fic2:fic3"
 
je vais commencer à coder ca, si vous voyez des objections, n'hesitez pas


 
Ce n'est pas vraiment au plugin d'adapter l'application à son usage mais plustot l'inverse non ?
 
Que je sache, les versions récentes de Borland C++ permetent de compiler et lier ensemble à la fois du Delphi et du C++ ce qui te permetrais facilement de résoudre ton problème.

n°559521
nico168
Posté le 05-11-2003 à 12:39:27  profilanswer
 

Kristoph a écrit a écrit :

 
 
Ce n'est pas vraiment au plugin d'adapter l'application à son usage mais plustot l'inverse non ?




Certes mais pour ca il faudrais modifier l'appli, qui est utilisé en prod donc beaucoup de tests a refaire... ca serait trop long(== trop cher)
 

Kristoph a écrit a écrit :

 
Que je sache, les versions récentes de Borland C++ permetent de compiler et lier ensemble à la fois du Delphi et du C++ ce qui te permetrais facilement de résoudre ton problème.




oui, ca serait bien, mais on n'as pas de licence c++ builder  :cry: .

n°559530
Kristoph
Posté le 05-11-2003 à 12:47:16  profilanswer
 

nico168 a écrit :


Certes mais pour ca il faudrais modifier l'appli, qui est utilisé en prod donc beaucoup de tests a refaire... ca serait trop long(== trop cher)
 
 
oui, ca serait bien, mais on n'as pas de licence c++ builder  :cry: .


 
On est bien d'accord pour ne pas changer l'interface des plugins là ???
 
Enfin bon, si vous ne voulez pas payer une licence c++ builder, il ne te reste sans doute qu'à apprendre le C++ :D

n°559635
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-11-2003 à 13:58:41  profilanswer
 

CString c'est Visual C++. Peut-être que C++Builder le supporte, mais c'est pas sûr.
Pour convertir std::list de CString en un format connu de Delphi je dirais que le plus simple est d'utiliser C++Builder pour en faire un TStringList (connu de Delphi & C++Builder).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  declaration de fonction, C++ vers delphi

 

Sujets relatifs
matrice, fonctionfonction include qui merde sous free
[php] lien vers image en php pour récup REFERER[delphi]Forcer la taille de sa police(reglage "Grande taille" chiant!)
[Delphi] tirage aléatoire suivant une loi normale ?[VB.NET] pointer la valeur de inputbox vers combobox
Recordset vers DOMAppeller une fonction d'une classe directement
[SDL] je comprends pas bien une fonction...Changer le contenu d'1 listeBoX en fonction choix d'1 autre listeBoX
Plus de sujets relatifs à : declaration de fonction, C++ vers delphi


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR