【发布时间】:2021-11-22 22:06:28
【问题描述】:
为什么在使用 rust Crate for Windows 时,LoadCursorA 调用不会生成“特征实现”构建错误?
#[allow(dead_code)]
use windows::Win32::UI::WindowsAndMessaging::LoadCursorA;
use windows::Win32::UI::WindowsAndMessaging::IDC_ARROW;
fn main() {
unsafe {
let _h_cursor = LoadCursorA(None, IDC_ARROW);
//let _h_cursor = LoadCursorA(None, &IDC_ARROW);
};
}
error[E0277]: trait bound PWSTR: IntoParam<'_, PSTR> 不满足
【问题讨论】:
-
你也可以粘贴编译器错误吗?
-
因为
IDC_ARROWis aPWSTR等不能与…A函数一起使用,这需要PSTR。 -
可以修改 LoadCursorA 调用以构建,如果可以,如何?谢谢。
-
IDC_*常量并不是真正的指针,而是伪装成指针的短整数常量,所以你应该安全地使用IDC_ARROW as PSTR。 -
尝试 IDC_ARROW 作为 PSTR 会出现错误 [E0605] 非原始类型转换:
PWSTRasPSTR