D:/../cargo-cache/bin/cargo.exe build --color=always --all --all-targets
Compiling proc-macro2 v1.0.19
Compiling winapi-x86_64-pc-windows-gnu v0.4.0
Compiling winapi v0.3.9
Compiling syn v1.0.34
Compiling memchr v2.3.3
Compiling log v0.4.11
Compiling libc v0.2.73
Compiling pin-project-internal v0.4.22
error: linking with `D:\dev\msys64\mingw32\bin\gcc.exe` failed: exit code: 1
|
= note: "D:\\dev\\msys64\\mingw32\\bin\\gcc.exe" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\crt2.o" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373993d98adf607f.build_script_build.aqdalkxg-cgu.0.rcgu.o" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373"D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373993d98adf607f.build_script_build.aqdalkxg-cgu.8.rcgu.o" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373993d98adf607f.build_script_build.aqdalkxg-cgu.9.rcgu.o" "-o" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373993d98adf607f.exe" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\build\\winapi-x86_64-pc-windows-gnu-373993d98adf607f\\build_script_build-373993d98adf607f.3cs0v1emfhffbtuk.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "D:\\code\\jrtzcloud\\rust\\quotes-bak-task\\target\\debug\\deps" "-L" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-67d47d305e6416cf.rlib" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-7a60e9aa38c75ecbcore-56e7371f88c71370.rlib" "-Wl,--end-group" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-8320c8f14264e1a8.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "D:\\rust-toolchain\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
= note:
error: aborting due to previous error
error: could not compile `winapi-x86_64-pc-windows-gnu`.
winapi
. Since it appears you are using an external MinGW toolchain it is recommended you disable the bundled MinGW toolchain that Rust provides. It is currently a nightly only feature and you can enable it with the rust flag -Z link-self-contained=no
.
winapi
, and ran into an issue, I have no idea on how to solve. Taking a look at the DWRITE_COLOR_GLYPH_RUN1
struct, https://docs.microsoft.com/en-us/windows/win32/api/dwrite_3/ns-dwrite_3-dwrite_color_glyph_run1, shows that it uses inheritance. Is this even possible to support in winapi
? If it is could someone point me in the right direction?
struct FOO: BAR {
in C, in Rust you would make the first field of FOO
be parent: BAR
.
std
(which winapi
depends on)std
loaded from \?\C:\Users\lygstate.rustup\toolchains\nightly-2020-10-01-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\std-d2161836abc64f12.dll, \?\C:\Users\lygstate.rustup\toolchains\nightly-2020-10-01-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd-d2161836abc64f12.rlibrulibc
)
error[E0152]: found duplicate lang item `panic_impl`
--> src\lib.rs:89:1
|
89 | pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: the lang item is first defined in crate `std` (which `winapi` depends on)
which
winapidepends on
repr(C)
struct with the vtable of the interface as the first element
I’m just getting started with winapi-rs. Any idea why I can’t
use winapi::um::minwinbase::SECURITY_ATTRIBUTES
:error[E0432]: unresolved import `winapi::um::minwinbase` --> src/main.rs:4:17 | 4 | use winapi::um::minwinbase::SECURITY_ATTRIBUTES; | ^^^^^^^^^^ Could not find `minwinbase` in `um`
I found this in Google search. I have a similar problem, how did you fix it? I get expected struct `winapi::minwinbase::SECURITY_ATTRIBUTES`, found struct `winapi::um::minwinbase::SECURITY_ATTRIBUTES``
winapi::minwinbase
doesn't exist for me.
Does anyone know why this array is constrained to only one item? https://docs.rs/winapi/0.3.9/winapi/um/winnt/struct.TOKEN_PRIVILEGES.html#structfield.Privileges
I'm also curious about how to read multiple entries and evaluate the size of such struct when used as a buffer.
use std::io::{Error, ErrorKind};
use winapi;
use winapi::shared::minwindef::*;
use winapi::shared::windef::*;
fn get_active_window_title() -> Result<String, Error> {
let handle = unsafe { winapi::um::winuser::GetForegroundWindow() };
if handle as UINT == winapi::um::winuser::WM_NULL {
return Err(Error::new(ErrorKind::Other, "GetForegroundWindow failed"));
}
let title = unsafe {
const MAX_TITLE_LENGTH: usize = 255;
let mut v: [u16; MAX_TITLE_LENGTH] = [0; MAX_TITLE_LENGTH];
let read_len =
winapi::um::winuser::GetWindowTextW(handle as HWND, v.as_mut_ptr(), MAX_TITLE_LENGTH as i32);
String::from_utf16_lossy(&v[0..read_len as usize])
};
Ok(title)
}
fn main() {
println!(
"active window title: {}",
get_active_window_title().unwrap()
);
}