System.AccessViolationException avec c_str
Bonjour,
J'essaie de coder une application pour utiliser une cam�ra GigE Basler Scout. Pour cela j'utilise visual studio 2008 et le SDK fourni par le fabriquant. L'application est bas�e sur les windows form en C++/CLI.
J'ai un probl�me lorsque j'essaie de r�cup�rer l'adresse IP de la cam�ra. Le SDK pr�voit une m�thode GetIPAddress pour cela. Celle-ci me retourne un objet de type Pylon::String_t.
Ce type permet de faire appel � des fonctions utilis�es par les std::string comme c_str. Dans le but d'afficher le r�sultat dans un label, je cherche � passer le r�sultat en System::String via :
Code:
System::String ^sIP = gcnew System::String(pBgdi.GetIpAddress().c_str());
La compilation se passe sans probl�me mais j'ai une erreur � l'ex�cution. Je me retrouve avec :
Citation:
Une exception non g�r�e du type 'System.AccessViolationException' s'est produite dans TestPylonNET.exe
Informations suppl�mentaires*: Tentative de lecture ou d'�criture de m�moire prot�g�e. Cela indique souvent qu'une autre m�moire est endommag�e.
alors que sIP prend bien la valeur voulue (adresse en XXX.XXX.XXX.XXX)
Work around via try{} .. catch {}
J'ai fini par trouv� un moyen pour faire fonctionner le code en DEBUG. Tout simplement :
Code:
1 2 3 4 5 6 7
| try
{
sIP = gcnew System::String(pBgdi.GetIpAddress().c_str());
}
catch(Exception ^)
{
} |