,當我試圖導入GetBinaryTypeA
功能:段錯誤調用GetBinaryTypeA
use std::ffi::CString;
use ::std::os::raw::{c_char, c_ulong};
extern { fn GetBinaryTypeA(s: *const c_char, out: *mut c_ulong) -> i32; }
fn main() {
let path = "absolute/path/to/bin.exe";
let cpath = CString::new(path).unwrap();
let mut out: c_ulong = 0;
println!("{:?}", cpath);
unsafe { GetBinaryTypeA(cpath.as_ptr(), out as *mut c_ulong); }
println!("{:?}", cpath);
}
輸出:
error: process didn't exit successfully: `target\debug\bin_deploy.exe` (exit code: 3221225477)
Process finished with exit code -1073741819 (0xC0000005)
如果我設置了無效的路徑,然後它執行成功和GetLastError()
回報2(「系統不能找到指定的文件「),所以它看起來像導入的功能。
我使用kernel32-sys箱子收到了同樣的錯誤。錯誤在哪裏呢?
沒有* 「段錯誤」 *在Windows中。請儘量表達您的問題。 – IInspectable
@IInspectable你爲什麼不編輯問題來糾正這個問題? – Boiethios
@Boiethios:我不能重現這個問題,我不知道確切的錯誤信息。 '0xC0000005'看起來像訪問衝突,但我不知道,Rust運行時如何報告這一點。既然你大概可以在你的機器上重現問題,爲什麼不自己提出編輯? – IInspectable