So basically, I need to use winapi with no_std, and many of the function parameters require a type of &[u16]
I initially tried to use the utf16 crate, and it seemed to work fine although when I tried to set the lpSubKey
field in the RegOpenKeyExW function and then tried running the program it exited with ERROR_FILE_NOT_FOUND. I went looking through the source code of the winreg crate, and found this function:
fn to_utf16<P: AsRef<OsStr>>(s: P) -> Vec<u16> {
s.as_ref()
.encode_wide()
.chain(Some(0).into_iter())
.collect()
}
I made a new project that wasn't no_std and used that function for converting to utf16, and the error disappeared and I was able to open the registry key. Is this a problem with the way I am using the utf16 crate? or is there some other way I can convert to utf16 without the standard library that will give the same results as the function in the winreg crate?