fadoch
Messages postés12Date d'inscriptionjeudi 22 avril 2010StatutMembreDernière intervention23 juin 2010
-
21 juin 2010 à 16:51
aslibaub
Messages postés1Date d'inscriptionjeudi 20 janvier 2011StatutMembreDernière intervention20 janvier 2011
-
20 janv. 2011 à 11:23
Bonjour à tous,
je travaille avec Visual C++.
je souhaite savoir quelle est la différence entre le type "string" et le type "CString". et pourquoi
MessageBox(message);
ne fonctionne pas si "message" est de type "string"?
et
std::getline(fichier, message);
ne fonctionne pas avec le type "CString"?
et comment je fait pour exécuter ces deux commandes sur la même chaine de caractère?
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 22 juin 2010 à 09:11
Bonjour,
effectivement ce manque de compatibilité est gênant. Ppour ma part j'ai opté pour CString et j'utilise la fonction GetBuffer afin d'obtenir un car* et ReleaseBuffer. En mixant les types j'ai eu des problèmes. Le conseil donné précedament est le bon: choisir un type et s'y tenir.
Pour getline j'utilise le Getbuffer auparavant
Bon codage
aslibaub
Messages postés1Date d'inscriptionjeudi 20 janvier 2011StatutMembreDernière intervention20 janvier 2011 20 janv. 2011 à 11:23
Bonjour,
J'essaye d'utiliser Markup pour avoir un accès aux fichiers xml. Donc je suis obligée de passer par Cstring. Je travaille sur Visual Studio 2008.
Pour déjà comprendre comment ça marche, j'essaye de créer une variable CString avec un string simple et de l'écrire dans un fichier.
Voici mon code :
CString strSN;
strSN.Format(TEXT("%s"),"asli");
std::string s((LPCTSTR)strSN);
// écriture de s dans le fichier m_ofsStream
m_ofsStream << s << endl;
J'ai le message d'erreur suivant :
.\src\Log.cpp(49) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::allocator<_Ty> &)' : impossible de convertir le paramètre 1 de 'LPCTSTR' en 'const std::allocator<_Ty> &'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>,
1> _Ty=char
1> ]
1> and
1> [
1> _Ty=char
1> ]
1> Raison : impossible de convertir de 'LPCTSTR' en 'const std::allocator<_Ty>'
1> with
1> [
1> _Ty=char
1> ]
1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
1>.\src\Log.cpp(50) : error C2679: '<<' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::string' (ou il n'existe pas de conversion acceptable)
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(653): peut être 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(700): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(738): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(785): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(909): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(916): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(923): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(930): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1302): ou 'CArchive &operator <<(CArchive &,ATL::CTimeSpan)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1309): ou 'CArchive &operator <<(CArchive &,ATL::CTime)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1519): ou 'CArchive &operator <<(CArchive &,const CObject *)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(170): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(176): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(183): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(190): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(210): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(243): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(263): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(288): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(308): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(328): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(349): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(369): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(390): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(410): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(430): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(450): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(470): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> lors de la tentative de mise en correspondance de la liste des arguments '(std::ofstream, std::string)'
Je n'arrive pas à m'en sortir depuis 2 jours, alors si quelqu'un peut m'aider, je serai ravie.
Merci.