【发布时间】:2015-07-17 20:37:53
【问题描述】:
类似于 stringtoshortArray 的东西:
short arr[5];
LPCTSTR teststr = "ABC"; // passed as an argument, can be anything
input= stringtoshortarray(teststr, arr);
output:
arr[0] = 41;
arr[1] = 42;
arr[2] = 43;
arr[3] = 0;
可能还有一个提供数组大小的函数说
int sz = SizeofArray(arr);
output:
sz = 3
可能可以编码,但如果有库调用,我想 使用它。
【问题讨论】:
-
为什么需要win32?
-
注意:这不是问题标题中所述的字符数组;它是一个
short数组。我真的很想知道您要解决的真正问题。 -
@WhozCraig 我会说 OP 正在尝试将
const char*转换为const wchar_t*。有时 VC++ 编译器错误有点误导... -
@user994572:如果您阅读
LoadKeyboardLayout()documentation,它需要LPCTSTR作为输入。您已经有一个LPCTSTR字符串,采用LoadKeyboardLayout()所期望的正确字符串格式。 无需转换。只需将您的字符串值 AS-IS 传递给LoadKeyboardLayout()(不是LoadKeyboardLayoutW(),除非您将字符串更改为LP(C)WSTR以匹配LoadKeyboardLayoutW()所期望的)。如果您没有预先说明您的实际要求,就会发生这种情况。 -
我投票结束这个问题作为题外话,因为提出的问题没有充分说明需要解决的真正问题。真正的问题是对所涉及的 Win32 API 缺乏了解,而且输入数据的格式已经正确,因此不需要转换任何内容。