FILE_RENAME_INFO FileNameLength size_of::
Не могу понять, что я не так делаю.
use winapi::shared::ntdef::LPWSTR;
use std::ffi::{CString, OsStr};
use std::os::windows::ffi::OsStrExt;
use winapi::shared::minwindef::DWORD;
pub fn str_to_lpwstr(rust_str: &str) -> LPWSTR {
OsStr::new(rust_str)
.encode_wide()
.chain(Some(0).into_iter())
.collect::<Vec<_>>()
.as_ptr() as LPWSTR
}
const lpwstr: LPWSTR = str_to_lpwstr(":wtfbbq");
let mut info = FILE_RENAME_INFO { FileNameLength: std::mem::size_of::<lpwstr>() as DWORD };
let mut info = FILE_RENAME_INFO { FileNameLength: std::mem::size_of::<lpwstr>() as DWORD};
^^^^^^ unexpected const argument
let mut info = FILE_RENAME_INFO { FileNameLength: std::mem::size_of::<lpwstr>() as DWORD};
^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 type argument
let mut info = FILE_RENAME_INFO { FileNameLength: std::mem::size_of::<lpwstr>() as DWORD};
^^^^^^^^^^^^^^^^ missing `FileName`, `ReplaceIfExists`, `RootDirectory`
На си языке написано так:
#define DS_STREAM_RENAME L":wtfbbq"
FILE_RENAME_INFO fRename;
LPWSTR lpwStream = DS_STREAM_RENAME;
fRename.FileNameLength = sizeof(lpwStream);