Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 160.6MB ·虚拟内存 1438.3MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
我在写程序(纯Rust命令行应用)时,使用了Rust crate winreg-rs
对 windows 注册表有些写入操作并放在一个函数中
并有一个对 linux 上同一个的函数
extern crate winreg;
use winreg::enums::*;
use winreg::RegKey;
extern crate serde_json;
use serde_json::Value;
use std::fs::File;
fn main() {
chrome_native_config();
}
#[allow(dead_code)]
#[cfg(target_os="windows")]
fn chrome_native_config(){
let hklm = RegKey::predef(HKEY_CURRENT_USER);
let (key,disp) = hklm.create_subkey("SOFTWARE\\Google\\Chrome\\NativeMessagingHosts\\chrome_nativeMessaging").unwrap();
match disp {
REG_CREATED_NEW_KEY => println!("A new key has been created"),
REG_OPENED_EXISTING_KEY => println!("An existing key has been opened"),
}
key.set_value("", &"D:\\threeday\\chrome_nativeMessaging.json").unwrap();
let value:String = key.get_value("").unwrap();
if value != "D:\\threeday\\chrome_nativeMessaging.json".to_string() {
key.set_value("", &"D:\\threeday\\chrome_nativeMessaging.json").unwrap();
}
let f = File::create("D:\\threeday\\chrome_nativeMessaging.json").unwrap();
let config_str=r#"
{
"name":"com.chrome.nativemessaging",
"description":"Chrome native messageing api example",
"path":"D:\\threeday\\TestWeb.exe",
"type":"stdio",
"allowed_origins":[
"chrome-extension://hgibimofjkchfnpmfhnigfhkkkahlmah/"
]
}"#;
let v:Value =serde_json::from_str(config_str).unwrap();
serde_json::to_writer(&f, &v).expect("write json failed");
}
#[cfg(target_os="linux")]
fn chrome_native_config(){
let f = File::create("~/.config/google-chrome/NativeMessingHosts/chrome_nativeMessaging.json").unwrap();
let config_str=r#"
{
"name":"chrome_nativeMessaging",
"description":"Chrome native messageing api example",
"path":"~/.config/google-chrome/NativeMessingHosts/TestWeb",
"type":"stdio",
"allowed_origins":[
"chrome-extension://fkdghlklbgmkokmgnoanmkedekgkckkp/"
]
}"#;
let v:Value =serde_json::from_str(config_str).unwrap();
serde_json::to_writer(&f, &v).expect("write json failed");
}但在 linux cargo build上的编译是
请问这个 Rust 条件编译怎么处理
在本指南中,我们将比较Rust和Python编程语言。我们将讨论每种情况下的适用用例,回顾使用Rust与Python的优缺点,并说明为什么Rust可能会取代Python。