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

Passage d'une string C# à une std::string C++ - C#/.NET managed - Programmation

Marsh Posté le 30-10-2006 à 15:02:08    

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)
Reply

Marsh Posté le 30-10-2006 à 15:02:08   

Reply

Marsh Posté le 30-10-2006 à 15:54:35    

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

Reply

Marsh Posté le 30-10-2006 à 15:59:22    

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)
Reply

Marsh Posté le 30-10-2006 à 16:13:55    

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
Reply

Marsh Posté le 30-10-2006 à 18:20:54    

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)
Reply

Marsh Posté le 31-10-2006 à 10:56:49    

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)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed