rust-zw3d

Crates.iorust-zw3d
lib.rsrust-zw3d
version0.1.0-alpha.12
created_at2025-10-12 12:16:33.134555+00
updated_at2025-12-11 03:11:58.268979+00
descriptionZW3D SDK 的 Rust 绑定:自动生成的 FFI + 轻量封装 + 命令/回调注册宏
homepagehttps://gitee.com/rust-cad/rust-zw3d
repositoryhttps://gitee.com/rust-cad/rust-zw3d
max_upload_size
id1879220
size48,286
hailoong (ytianxia6)

documentation

https://docs.rs/rust-zw3d

README

rust-zw3d (core)

当前版本:Alpha(框架阶段)。仅提供基础绑定与最小封装,欢迎 Issue/PR(https://gitee.com/rust-cad/rust-zw3d)。

ZW3D SDK 的 Rust 绑定(核心 crate)。

  • 提供 ffi(自动绑定)与 wrapper(易用封装)
  • 暴露命令/回调注册宏:register_commands!register_callbacks!unregister_commands!unregister_callbacks!
  • 提供模块进出点宏:zw3d_module!

依赖与配置

  • 需要链接 ZW3D.lib(详见仓库根 README.md 环境准备章节)
  • 通过 zw3d.toml 配置 SDK 路径与 version,并可在代码中通过 rust_zw3d::SDK_VERSION 读取
  • feature:macros(重导出属性宏,默认开启)

最小示例

use rust_zw3d::*;

#[cmd]
fn hello(_code: i32) -> i32 {
    cvxMsgDisp("hello");
    0
}

#[callback]
fn on_event(name: &str, a: i32, b: i32) -> i32 {
    cvxMsgDisp(name);
    0
}

zw3d_module!(demo);

API 概览

  • cvxMsgDisp(msg: &str):显示消息
  • cvxCmdFunc(cmd: &str, func: fn(i32)->i32, code: f64):注册命令
  • cvxCmdFuncUnload(cmd: &str):卸载命令
  • cvxCmdCallback(name: &str, func: unsafe extern "C" fn(*const c_char,i32,i32)->i32):注册回调
  • cvxCmdCallbackUnload(name: &str):卸载回调
  • register_commands!() / unregister_commands!():批量注册/卸载由 #[cmd] 收集的命令
  • register_callbacks!() / unregister_callbacks!():批量注册/卸载由 #[callback] 收集的回调
  • zw3d_module!(myplugin):生成模块的 Init/Exit 出口

注意

  • 传递给底层 SDK 的字符串需与其编码约定匹配;请优先使用 ASCII/UTF-8
Commit count: 0

cargo fmt