请问C++中要使用LPSTR、LPWSTR需要定义哪个头文件?

请问C++中要使用LPSTR、LPWSTR需要定义哪个头文件?,第1张

C++中要使用LPSTR、LPWSTR需要定义windows.h开头的文件。

C++这个名字是Rick Mascitti于1983年中所建议的,并于1983年12月首次使用。更早以前,尚在研究阶段的发展中语言曾被称为“new C”,之后是“C with Class” 。在计算机科学中,C++仍被称为C语言的上层结构。它最后得名于C语言中的“++” *** 敏桐森培作符(其对变量的值进行递增)。而且在共同的命名约定中,使用“+”以表示增强的程序。Stroustrup说:“这个名字象征着源自于C语桥春坦言变化的自然演进”。

VS2005以后的版本中LPCTSTR的定义位于WinNT.h。

//

// Neutral ANSI/则脊镇UNICODE types and macros

//

#ifdef UNICODE // r_winnt

#ifndef _TCHAR_DEFINED

typedef WCHAR TCHAR, *PTCHAR

typedef WCHAR TBYTE , *PTBYTE

#define _TCHAR_DEFINED

#endif /* !_TCHAR_DEFINED */

typedef LPWCH LPTCH, PTCH

typedef LPWSTR PTSTR, LPTSTR

typedef LPCWSTR PCTSTR, LPCTSTR

typedef LPUWSTR PUTSTR, LPUTSTR

typedef LPCUWSTR PCUTSTR, LPCUTSTR

typedef LPWSTR LP

#define __TEXT(quote) L##quote // r_winnt

#else /* UNICODE */ // r_winnt

#ifndef _TCHAR_DEFINED

typedef char TCHAR, *PTCHAR

typedef unsigned char TBYTE , *PTBYTE

#define _TCHAR_DEFINED

#endif /* !_TCHAR_DEFINED */孙粗

typedef LPCH LPTCH, PTCH

typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR

typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR

#define __TEXT(quote) quote // r_winnt

#endif /* UNICODE */// r_winnt

#define TEXT(quote) __TEXT(quote) //野友 r_winnt

可以用A2W,具体可参考下面的说明:

LPSTR(char*)和LPWSTR的转换

可以使用下面的ATL宏来进行,最好是将变量定义成TCHAR、LPTSTR等T类型,可以避免转换。

ATL宏介绍:

A2BSTR OLE2A T2AW2A

A2COLE OLE2BSTRT2BSTRW2BSTR

A2CT OLE2CA T2CA W2CA

A2CWOLE2CT T2COLEW2COLE

A2OLE OLE2CW T2CW W2CT

A2TOLE2TT2OLEW2OLE

A2W OLE2W T2W W2T

A :ANSI 字符串,也就是 MBCS。

W、OLE 宽字符串,也就是 UNICODE。

T 中间类仿衡悔型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A

C const 的缩写

利用这些宏,可以快速的进行各种字符间的转换。使用备正前必须包含头文件,并且申明USER_CONVERSION;使用 ATL 转换宏,由拦没于不用释放临时空间,所以使用起来非常方便。但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12239964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存