Bonjour,
Je me trouve devant un �pineux probl�me d'access violation ...
J'ai une application C#.Net qui doit utiliser une librairie C++ native.
Je me suis donc attel� � �crire un wrapper C++/cli pour permettre la communication.
Ma solution VS se compose donc comme suit :
- un projet C#
- un projet C++ mixte avec des classes CLI et des classes en natif
Le projet c++ est li� � la biblioth�que native (mapnik) que je veux wrapper et le projet C# est li� au projet C++.
A plusieurs endroits de mon code c++ natif, les m�thodes prennent des arguments de type std::string.
Qu'� cela ne tienne, je converti les System::String^ en std String seulement voil� :
En debug step, by step, dans le constructeur de ma classe native prenant un std::string, si je regarde la valeur de mon param�tre, le texte est correcte.
Mais juste apr�s, avoir cr�er mon objet, le C# appelle indirectement une m�thode de mon objet fraichement instanci� et l�, crack ! dans la m�thode, la valeur de ma variable d'instance vaut tout sauf la valeur affect�e dans le constructeur ...
J'ai lu ici (sans bien tout comprendre) que �a pourrait venir du fait que les objets seraient d�clar�s/instanci�s dans des dll diff�rentes.
D'o� mon id�e de vouloir recr�er un nouveau string dans le constructeur de ma classe qui �viterait un pointeur vers une zone m�moire incertaine.
(Si tant est que j'ai bien identifi� le probl�me)
Mon niveau de C++ est assez basique et l� c'est clairement en dehors de mon domaine de compr�hension![]()
Partager