LPWSTR,wchar_t *和C ++中的无符号短指针

时间:2013-04-26 09:33:47

标签: c++ pointers unsigned short wchar

我试图了解这些类型是否完全相同。我在GetCommandLine()模式下从 windows.h UNICODE获得此功能,并返回LPWSTR。现在,如果我深入挖掘,我可以看到LPWSTRwchar_t*的方式,如果我更进一步,我会发现wchar_tunsigned short(16字节)或{{ 1}}(32字节)。但是,如果我这样做:

unsigned long

我收到此错误:

  初始化

无法从'LPWSTR {aka wchar_t *}转换为'short unsigned int *'

那么,编译器是否遵循相同的逻辑来发现unsigned short* SysComm = GetCommandLine(); 最终是LPWSTR还是我错了?

1 个答案:

答案 0 :(得分:3)

wchar_t是一个不同的类型,被定义为具有与其他整数类型相同的属性。

  

类型wchar_t是一种独特的类型[...]。类型wchar_t应具有与其他整数类型相同的大小,符号和对齐要求(3.11),称为基础类型

因此,您无法隐式地从wchar_t*转换为short*,只能从int*隐式转换为short*