c语言 - 什么是 Linux 等价于 LPTSTR 和 LPCSTR?



我正在将Windows库转换为Linux。我需要在Linux中找到LPTSTR和LPCSTR。

我知道可以使用WCHAR_T可以使用,但我不确定使用它。

使用LPTSTR的方法之一如下:

void ErrorExit(LPTSTR zFunction)
{
}

任何帮助将不胜感激!

在Linux中,您通常不将wchar_t用于库API函数。大多数库都使用UTF-8编码的字符串,因此它们将其作为NUL终止的chars的纯字符串阵列(IMO远比复制ANSI和Unicode版本复制所有功能要好得多)。

>

所以,请记住:

  • LPCTSTRLPCSTRLPCWSTR-> const char *
  • LPTSTRLPSTRLPWSTR-> char *

如果您坚持使用Unicode功能,MS样式,则必须意识到它们实际上使用UTF-16编码的字符串,而wchar_t不是便携式类型,因为该语言未指定其大小。相反,您可以使用uint16_t

  • LPCWSTR-> const uint16_t *
  • LPWSTR-> uint16_t *

,如果您想成为额外的MS兼容,则可以使用UNICODE宏来条件地将LPTSTRLPTCSTR键入其他一个,但对于您的问题,这可能是不需要的。

lptstr -l‌ong p‌ointer to t‌charr‌ing(不用担心,长指针与指针相同。)

lpcstr -l‌gong p‌ointer to c‌onst str‌ing

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

来自MSN页面LPCSTR

typedef const char* LPCSTR;

来自MSN页面lptstr =>

#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif

相关内容

  • 没有找到相关文章

最新更新