4 个版本 (重大变更)
0.4.0 | 2022 年 7 月 2 日 |
---|---|
0.3.0 | 2019 年 10 月 1 日 |
0.2.0 | 2017 年 12 月 10 日 |
0.1.0 | 2017 年 11 月 5 日 |
#2093 在 Rust 模式
每月 40 次下载
195KB
5K SLoC
定义与 COM 协议兼容的 Rust 组件的工具。
Intercom 提供了属性来自动派生与 extern
兼容的函数,用于 Rust 方法。这些函数与 COM 二进制接口标准兼容,允许它们从任何支持 COM 的语言中使用。
示例
一个将计算器类型公开为 COM 对象的基本示例。
use intercom::{com_library, com_class, com_interface, ComResult};
// Define COM classes to expose from this library.
com_library!(class Calculator);
// Define the COM class and the interfaces it implements.
#[com_class(Self)]
#[derive(Default)]
struct Calculator;
// Define the implementation for the class. The COM interface is defined
// implicitly by the `impl`.
#[com_interface]
impl Calculator {
fn add(&self, a: i32, b: i32) -> ComResult<i32> { Ok(a + b) }
fn sub(&self, a: i32, b: i32) -> ComResult<i32> { Ok(a - b) }
}
上述库可以从 C# 以以下方式使用。
void Main()
{
var calculator = new CalculatorLib.Calculator();
Console.WriteLine( calculator.Add( 1, 2 ) );
}
依赖项
~2.4–3.5MB
~71K SLoC