#虚函数表 # #虚拟 #交互 #索引 #指针

虚函数表

从 Rust 交互 C++ 虚拟方法表

1 个不稳定版本

0.1.0 2021 年 7 月 22 日

#12 in #虚函数表

每月 48 次下载
2 crates 中使用

GPL-3.0 许可证

14KB

虚函数表

从 Rust 交互 C++ 虚拟方法表

用法

克隆这两个仓库,并将以下内容添加到你的 Cargo.toml 文件中

[dependencies]
vtables = "0.1"
vtables_derive = "0.1"

然后你可以像这样使用虚方法表中的方法

use vtables::VTable;
use vtables_derive::VTable;
use vtables_derive::has_vtable;
use vtables_derive::virtual_index;

#[has_vtable]
#[derive(VTable, Debug)]
pub struct EngineClient {
}

#[allow(non_snake_case)]
impl EngineClient {
    #[virtual_index(5)]
    pub fn GetScreenSize(&self, width: *mut i32, height: *mut i32) {}
    
    #[virtual_index(26)]
    pub fn IsInGame(&self) -> bool {}

    #[virtual_index(108)]
    pub fn ExecuteClientCmd(&self, command: *const c_char) {}

    #[virtual_index(113)]
    pub fn ClientCmd_Unrestricted(&self, command: *const c_char) {}
}

包含虚方法表指针的字段将自动添加到你的结构体中。多继承支持尚未测试。

无运行时依赖