1 个不稳定版本
0.1.0 | 2021 年 7 月 22 日 |
---|
#12 in #虚函数表
每月 48 次下载
在 2 crates 中使用
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) {}
}
包含虚方法表指针的字段将自动添加到你的结构体中。多继承支持尚未测试。