Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Win32开发-C++;_String_Winapi_Pointers_Types_Character Encoding - Fatal编程技术网

String Win32开发-C++;

String Win32开发-C++;,string,winapi,pointers,types,character-encoding,String,Winapi,Pointers,Types,Character Encoding,我打算从Win32应用程序开发开始。我还没来得及看到第一个窗口,就准备放弃了!在编写简单的WinMain和WndProc之前,您需要了解的数据类型数量之多让我不知所措。(当然,除非你复制粘贴!) 尤其是: LPSTR LPCSTR LPWSTR LPCWSTR 有人能给我指出一篇关于Win32编程的文章吗?我应该知道哪些,在什么情况下需要哪些,何时使用Unicode,什么是多字节字符集,以及所有相关的东西 在调用Win32 API函数时,将这些数据类型转换为char*和char[]等等是一件痛苦

我打算从Win32应用程序开发开始。我还没来得及看到第一个窗口,就准备放弃了!在编写简单的WinMain和WndProc之前,您需要了解的数据类型数量之多让我不知所措。(当然,除非你复制粘贴!)

尤其是:

LPSTR

LPCSTR

LPWSTR

LPCWSTR

有人能给我指出一篇关于Win32编程的文章吗?我应该知道哪些,在什么情况下需要哪些,何时使用Unicode,什么是多字节字符集,以及所有相关的东西

在调用Win32 API函数时,将这些数据类型转换为char*和char[]等等是一件痛苦的事情

这一切太令人困惑了


感谢您的帮助。

模式相对简单:

LPSTR=字符的以零结尾的字符串

LPCSTR=常量
字符的以零结尾的字符串(C==常量)

LPWSTR=以零结尾的
wchar\u t
字符串(W==宽字符)

LPCWSTR=恒定的以零结尾的字符串(C和W)

有关详细信息和说明,请参见


链接文章还包含在应用程序中何时使用Unicode以及何时不使用Unicode的建议

+1-嘿,刚刚看了一眼这篇文章。看起来它回答了我的很多字符串/字符集问题。谢谢!:)不客气。是的,一开始这很可笑,但过了一段时间后就有了某种意义。经历它。。。就好像那篇文章是定做的!:)别忘了BSTR、\u wchar\u t或许多包装类:CComBstr、CString、CAtlString、STL::String、\u BSTR\t。关于C++最好的事情是编写自己的字符串实现;好吧,你让我头晕目眩…根据你工作的平台,你通常只需要一两个。对于windows开发,我最终使用的大部分都是CString和bstr。