gpt4 book ai didi

winapi - 使用winapi从scancode获取char的问题

转载 作者:行者123 更新时间:2023-12-03 11:39:29 25 4
gpt4 key购买 nike

我一直在尝试在扫描码和字符之间进行转换。该系统以前曾工作过,但到目前为止,出于我无法告知的原因,该系统已停止工作。

static mut SCANCODE_BUFFER: winapi::shared::minwindef::PBYTE = std::ptr::null_mut();
static mut layout: winapi::shared::minwindef::HKL = std::ptr::null_mut();

pub fn SCANCODE_TO_CHAR(scancode: u32) -> char {
unsafe {
let mut result = [0 as u16; 2];

if GetKeyboardState(SCANCODE_BUFFER) == winapi::shared::minwindef::FALSE {
return 0 as char;
}
let vk = MapVirtualKeyExA(scancode, 1, layout);
ToAsciiEx(vk, scancode, SCANCODE_BUFFER, result.as_mut_ptr(), 0, layout);
result[0] as u8 as char

}
}

pub fn initialize() {
unsafe {

SCANCODE_BUFFER = [0 as u8; 256].as_mut_ptr();
layout = GetKeyboardLayout(0);

}
}

我已经进行了一些调试,并且似乎该函数调用: GetKeyboardState(SCANCODE_BUFFER)
导致程序以以下内容结束: (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)
有谁知道如何解决?

额外信息: SCANCODE_BUFFER绝对不是空指针。

最佳答案

很抱歉张贴此。 SCANCODE_BUFFER指向内存丢失。过去我一定很幸运。

关于winapi - 使用winapi从scancode获取char的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62398617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com