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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Passage d'une string C# à une std::string C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passage d'une string C# à une std::string C++

n°1467503
jipo
Kamoulox !
Posté le 30-10-2006 à 15:02:08  profilanswer
 

Bonjour,
 
J'ai une appli cliente en C# qui communique avec d'autre composants via une DLL compilée en C++ (unmanaged)
L'appli C# appelle une fonction de la DLL en lui passant une string (C#). La DLL C++ attend une std::string.
 
Comment faire ? Quelle la solution la plus élégante ?
 
 
De plus y a-t-il une solution visuelle simple pour débugger la DLL depuis le lancement du client en C# ?


Message édité par jipo le 30-10-2006 à 15:06:22

---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
mood
Publicité
Posté le 30-10-2006 à 15:02:08  profilanswer
 

n°1467537
bb138
La vie est belle ...
Posté le 30-10-2006 à 15:54:35  profilanswer
 

Tu n'as pas d'interface C pour ta librairie C++ ?
Sinon je ne vois vraiment pas...

n°1467542
jipo
Kamoulox !
Posté le 30-10-2006 à 15:59:22  profilanswer
 

En fait le seul moyen si j'ai bien compris est de passer et recevoir un char* ?


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
n°1467566
_darkalt3_
Proctopathe
Posté le 30-10-2006 à 16:13:55  profilanswer
 

jipo a écrit :

En fait le seul moyen si j'ai bien compris est de passer et recevoir un char* ?


Au moins String*->char* fonctionne. Ensuite tu peux toujours construire ta std::string à partir de là oui


---------------
Töp of the plöp
n°1467739
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-10-2006 à 18:20:54  profilanswer
 

Essaie ça :

Code :
  1. void MarshalString ( System::String* s, std::string& os )
  2. {
  3.    using namespace System::Runtime::InteropServices;
  4.    const char* chars =
  5.       (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
  6.    os = chars;
  7.    Marshal::FreeHGlobal(IntPtr((void*)chars));
  8. }


---------------
J'ai un string dans l'array (Paris Hilton)
n°1468021
jipo
Kamoulox !
Posté le 31-10-2006 à 10:56:49  profilanswer
 

Merci à tous pour votre participation.
Je vois ce qui peut être fait


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Passage d'une string C# à une std::string C++

 

Sujets relatifs
TextField.text : le String magique ?[Résolu] Changement de couleur au passage de la souris
[RESOLU] tab multidimensionel en paramètre d'une fonctionpassage variables de java a flash
[RESOLU] Taille maximum String et requêtesuperiorité de string
[Résolu] [C#] String et SplitMailer Error: Language string failed to load: recipients_failedme@s.fr
[JAVA] Contrôler le contenu d'un String[NSIS][Résolu] comparaison de string
Plus de sujets relatifs à : Passage d'une string C# à une std::string C++


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