Bonjour,
J'utilise Visual C++ 2005 en windows form et j'aimerai convertir des données de type Systeme String (utilisé dans les textbox par exemple) en string normal afin de pouvoir utiliser ce qui a été entré dans mes classes.
Sur le site de microsoft ils parlent d'une fonction pour faire la convertion:
#include <string>
#include <iostream>
using namespace std;
using namespace System;
void MarshalString ( String ^ s, string& os ) {
using namespace Runtime::InteropServices;
const char* chars =
(const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
Lorsque je l'inclu a mon projet, aucun probleme, mais lorsque j'appelle la fonction dans mon code =>
MarshalString(this->txtnom->Text->ToString(), nom);
J'ai une erreur comme ceci a la compilation:
stdafx.obj : error LNK2005: "void __clrcall MarshalString(class System::String ^,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?MarshalString@@$$FYMXP$AAVString@System@@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) déjà défini(e) dans projet_vtt.obj
Form_enreg.obj : error LNK2005: "void __clrcall MarshalString(class System::String ^,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?MarshalString@@$$FYMXP$AAVString@System@@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) déjà défini(e) dans projet_vtt.obj
Je ne comprend absolument pas ce que ca veut dire (faut dire que c'est pas très clair!)
Est-ce que quelqu'un pourrait m'aiguiller un peu?
Merci
Partager