小编Da *_*aex的帖子

Cargo.toml板条箱的OS依赖性

我有一个锈项目,其中包括mysql -crate依赖项,并且我希望它独立于操作系统。

所以我尝试了:Cargo.toml

[package]
name = "test"
version = "0.1.0"
authors = ["daMaex"]

[dependencies]
ws = "*"
clap = "*"
env_logger = "*"

[target.'cfg(any(unix, macos))'.dependencies.mysql]
version = "*"
default-features = false
features = ["socket"]

[target.'cfg(windows)'.dependencies.mysql]
version = "*"
default-features = false
features = ["pipe"]

[features]
default = []
ssl = []
Run Code Online (Sandbox Code Playgroud)

该错误已经发生,并且使用最小的main:src / main.rs

fn main () {
}
Run Code Online (Sandbox Code Playgroud)

但是构建失败。在macos / unix上,它总是要编译管道并获得未解决的导入:

error[E0432]: unresolved import `std::os::windows::io::RawHandle`
  --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/named_pipe-0.2.2/src/lib.rs:38:5
   |
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Could not find `windows` in `std::os` …
Run Code Online (Sandbox Code Playgroud)

operating-system dependency-management rust rust-crates rust-cargo

5
推荐指数
1
解决办法
618
查看次数

C ++事件处理

我想在标准C ++(UNIX)中实现类似于事件处理的C#,如以下代码:

public class connection{

    public delegate void Message(object sender, string text);
    public event Message doMessage = null;

    //called from within a Thread or something alike
    private void MessageReceived(string Message){
        if (this.doMessage != null)
        {
            this.doMessage(this, Message);
        }
    }
}

public class Main{
    Connection con;

    public Main()
    {
        this.con = new Connection();
        this.con.doMessage += con_doMessage;
    }

    void con_doMessage(object sender, string message)
    {
        txtMain.Text = txtMain.Text + Environment.NewLine + message;
    }
}
Run Code Online (Sandbox Code Playgroud)

我用指尖搜索了血腥的东西,但发现的只是事件触发,而不是像我的示例中那样覆盖类。

实际上,我是Standard C ++的新手,也许有一种简单的方法可以通过在类中触发数据来将数据添加到覆盖类,而我只是还没有看到它。

但是,是的,正如我所说,我一无所知,我们将不胜感激。

c# c++ unix events delegates

1
推荐指数
1
解决办法
2435
查看次数