5个版本 (3个破坏性更新)
0.4.0 | 2023年10月18日 |
---|---|
0.3.1 | 2022年7月26日 |
0.3.0 | 2022年3月29日 |
0.2.3 | 2022年3月17日 |
0.1.0 | 2022年3月5日 |
在 游戏开发 中排名 #302
2MB
5.5K SLoC
dos-like
for Rust —
本项目提供了访问 Mattias Gustavsson的dos-like
框架 的权限,以便在Rust中编写类似DOS的应用程序。
如何使用
此包不是一个常规库。 它定义了自己的主函数。为了正确链接可执行文件,主源文件需要声明没有 main
并定义一个 extern C 函数 dosmain
。
#![no_main]
#[no_mangle]
pub extern "C" fn dosmain() -> i32 {
// your code here
0
}
提供了一个实用宏作为声明函数的替代方案
#![no_main]
dos_like_rs::dos_main! {
// your code here
}
请参阅 示例 以了解典型应用程序结构,这些示例基于原始的 dos-like
示例。
需要可用的C编译器(使用 cc
)。dos-like框架是静态链接的,就像C程序一样。
由于启动器基于C中的例程,这也意味着不会工作 panic unwinding,因此最好将您的项目配置为在 panic 上终止。在您的 Cargo.toml 中
[profile.dev]
panic = "abort"
[profile.release]
panic = "abort"
查看 dos-like
README 了解其他要求。
Cargo功能
disable-screen-frame
编译dos-like
以确保视图周围的CRT屏幕框架不会出现。
平台支持
这些绑定已在Linux、Windows和MacOS Monterey (x86)上进行了测试。目前无法保证WebAssembly支持(但您的帮助将非常受欢迎!)。
构建
在处理此项目时,请确保在 dos-like-sys/dos-like
中的 git 子模块已填充(通过使用 --recurse-submodules
进行克隆或通过调用 git submodule update --init
)。某些示例不检查此子模块将无法正常工作。
许可和归属声明
Rust 绑定在以下任一项下获得许可:
- Apache 许可证 2.0 版本,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择。
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,如 Apache-2.0 许可证中定义,应按上述方式双重许可,而无需任何额外的条款或条件。
dos-like
框架的许可按照原始 LICENSE 文件 中定义。