首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Linux等价于LPTSTR和LPCSTR?

什么是Linux等价于LPTSTR和LPCSTR?
EN

Stack Overflow用户
提问于 2014-02-05 10:30:16
回答 2查看 7.9K关注 0票数 7

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

我知道我可以使用wchar_t,但是我并不确定是否使用它。

使用LPTSTR的方法之一如下:

代码语言:javascript
复制
void ErrorExit(LPTSTR zFunction)
{
}

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 10:38:22

在Linux中,通常不会将wchar_t用于库API函数。大多数库使用UTF-8编码字符串,因此它们将以NUL结尾的字符作为字符串数组(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有条件地归入其中一个,但这可能是您的问题所不需要的。

票数 11
EN

Stack Overflow用户

发布于 2014-02-05 10:55:30

LPTSTR‌ong‌ointer to T‌CHAR STR‌ing (别担心,长指针与指针相同)。

LPCSTR - L‌ong‌ointer到C‌onst STR‌ing

代码语言:javascript
复制
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

代码语言:javascript
复制
typedef const char* LPCSTR;

来自msn页面LPTSTR=>

代码语言:javascript
复制
#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21574670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档