A character pointer to the string’s data.
This useful casting operator provides an efficient method to access the null-terminated C string contained in a CString object. No characters are copied; only a pointer is returned. Be careful with this operator. If you change a CString object after you have obtained the character pointer, you may cause a reallocation of memory that invalidates the pointer.
The following example demonstrates the use of CString::operator LPCSTR.
// If the prototype of a function is known to the compiler, // the LPCTSTR cast operator may be invoked implicitly CString strSports(_T("Hockey is Best!")); TCHAR sz; lstrcpy(sz, strSports); // If the prototype isn't known, or is a va_arg prototype, // you must invoke the cast operator explicitly. For example, // the va_arg part of a call to sprintf() needs the cast: sprintf(sz, "I think that %s!\n", (LPCTSTR) strSports); // while the format parameter is known to be an LPCTSTR and // therefore doesn't need the cast: sprintf(sz, strSports); // Note that some situations are ambiguous. This line will // put the address of the strSports object to stdout: cout << strSports; // while this line will put the content of the string out: cout << (LPCTSTR) strSports;