TextOut in VC++

Hi Experts,

  This is actually a continuous question of :
   http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_21170689.html

 I tried to use TextOut to print a string on the screen :
------------------------------------
string mystring ;
mystring = "Hello" ;
TextOut(mdc, x, y , _T(mystring), 4);
---------------------------------------------------
but it didn't work : I got the errors :
:\Program Files\Microsoft Visual Studio\MyProjects\MyMap\MyMap.cpp(485) : error C2664: 'TextOutA' : cannot convert parameter 4 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
------------------------------------
 Does anyone know what I might have missed and how to fix it ??? thanks !!!
 
LVL 1
meow00Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
OnegaZhangConnect With a Mentor Commented:
TextOut(mdc, x, y , mystring.c_str(), mystring.length());

welcome to www.fruitfruit.com
0
 
OnegaZhangCommented:
TextOut(mdc, x, y , mystring.c_str(), 4);

welcome to www.fruitfruit.com
0
 
itsmeandnobodyelseCommented:
In a MFC project you should consider using CString rather than std::string as you wouldn't have compatibility problems like that above:

   CString mystring ;
   mystring = "Hello" ;
   TextOut(mdc, x, y , _T(mystring), 4);   // no problems with CString

There is a CString::operator LPCTSTR() that can convert any CString to a LPCTSTR (const TCHAR*), but there isn't an equivalent function in std::string.

Regards, Alex
 
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.