OsStr
to a const * _
?
ID3D10Blob
question, you would call the GetBufferPointer
and GetBufferSize
methods to get the pointer and size, and pass them to std::slice::from_raw_parts
to get a &[T]
.
&[u16]
and pass it to OsStringExt::from_wide()
CoCreateInstance
with a class not found
error? https://github.com/LiHRaM/egpu-rs/blob/master/src/main.rs
HRESULT
specifically is: 0x80040154
tlhelp32
error[E0432]: unresolved import `winapi::um::tlhelp32`
winapi::um
works though
lihram
Nvm, found it here: https://github.com/contextfree/winrt-rust/blob/master/examples/toast_notify.rs
Hello, I'm struggling with following problem:
I have a BITMAP declared like this
let mut bmp: BITMAP = mem::uninitialized();
then I'm trying to call a GetObject
GetObjectW(
bitmap as HANDLE,
mem::size_of::<BITMAP>() as i32,
&mut bmp as * LPVOID,
);
And I'm getting
error[E0606]: casting `&mut winapi::um::wingdi::BITMAP` as `*mut std::ffi::c_void` is invalid
--> src\main.rs:118:17
|
118 | &mut bmp as LPVOID,
| ^^^^^^^^^^^^^^^^^^
<*mut _>::cast(&mut bmp)
pvData
and pcbData
from a call to winapi::um::winreg::RegGetValueA
... the function returns ERROR_SUCCESS
if I set those both to std::ptr::null_mut()
, so all other parameters are OK! I'm just stuck on how do declare those variables and converting then to and from... I'm new to rust!!!
let mut pvData = vec![0; 2];
let lstatus = unsafe { RegGetValueA(HKEY_CURRENT_USER,
hkey.as_ptr(),
lpSubKey.as_ptr(),
RRF_RT_REG_DWORD,
std::ptr::null_mut(),
pvData.as_mut_ptr() as *mut c_void,
std::ptr::null_mut()
)};
println!("SUCCESS {:?}", pvData[0]);
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