<分区>
LPWSTR data[256];
ToUnicode(vk_code, 0, 0, *data, 256, 0);
此代码抛出以下异常:
访问冲突写入位置 0xCCCCCCCC。
vk_code
值在断点处似乎完全正常,我检查了 msdn 以确保我的参数有效。我可能做错了什么?
<分区>
LPWSTR data[256];
ToUnicode(vk_code, 0, 0, *data, 256, 0);
此代码抛出以下异常:
访问冲突写入位置 0xCCCCCCCC。
vk_code
值在断点处似乎完全正常,我检查了 msdn 以确保我的参数有效。我可能做错了什么?
最佳答案
您正在将未启动的指针传递给 pwszBuff
参数。它需要一个指向分配的字符数组的指针。更改您的数组以使用 WCHAR
元素而不是 LPWSTR
元素,并摆脱 *
取消引用运算符:
WCHAR data[256];
int res = ToUnicode(vk_code, 0, 0, data, 256, 0);
switch (res) {
case -1:
// dead-key character, nothing written to data[]...
break;
case 0:
// no translation, nothing written to data[]...
break;
default:
// res # of characters written to data[]...
break;
}
关于c++ - WinApi - ToUnicode 函数引发访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312824/