I am converting windows library to linux. I need to find LPTSTR and LPCSTR in linux.
I get to know that i can use wchar_t can be used but I am not really sure about using it.
one of the method that uses LPTSTR is as follows:
void ErrorExit(LPTSTR zFunction)
{
}
Any help will be appreciated!
In Linux you don't usually use wchar_t
for library API functions. Most libraries use UTF-8 encoded strings, so they take as strings plain arrays of NUL-terminated chars (IMO that is far better than duplicating all the functions with ANSI and Unicode versions).
So, with that in mind:
LPCTSTR
, LPCSTR
, LPCWSTR
-> const char *
.LPTSTR
, LPSTR
, LPWSTR
-> char *
.If you insist in using Unicode functions, MS style, you have to be aware that they actually use UTF-16 encoded strings, and wchar_t
is not a portable type, as its size is not specified by the language. Instead you can use uint16_t
:
LPCWSTR
-> const uint16_t *
.LPWSTR
-> uint16_t *
.And if you want to be extra MS compatible, you can use the UNICODE
macro to conditionally typedef the LPTSTR
and LPTCSTR
into one of the others, but that's probably unneeded for your problem.
LPTSTR - Long Pointer to TCHAR STRing (Don't worry, a long pointer is the same as a pointer.)
LPCSTR - Long Pointer to a Const STRing
LPSTR = char*
LPCSTR = const char*
LPWSTR = wchar_t*
LPCWSTR = const wchar_t*
LPTSTR = char* or wchar_t* depending on _UNICODE
LPCTSTR = const char* or const wchar_t* depending on _UNICODE
from msn page LPCSTR
typedef const char* LPCSTR;
from msn page LPTSTR=>
#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
#endif
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With