# OldWin
**OldWin** OldWin makes compatibility with Old Windows easier!
The crate relies heavily on [YY-Thunks](https://github.com/Chuyu-Team/YY-Thunks) and [VC-LTL5](https://github.com/Chuyu-Team/VC-LTL5) to solve the problem of missing APIs on older systems and API-SETs in the import table.
## Features
- **Effortless Integration**: Integrate YY-Thunks and VC-LTL5 just add entry to your `build-dependencies` and modify `build.rs`.
- **Backward Compatibility**: Effortlessly support Windows XP and later versions.
- **Binary Size Optimization**: Implement strategies to reduce the footprint of your application binaries.
## Usage
### 1. Add Dependency
Include OldWin in your `Cargo.toml` file:
> vc-ltl5 is dependent on yy-thunks, so if you use vc-ltl5 yy-thunks will be automatically added.
```toml
[dependencies]
# use yy-thunks and vc-ltl5 on Windows 7
oldwin = { version = "0.1.0", features = ["win7", "vc-ltl5"] }
```
### 2. Switch to {i686, x86_64}-win7-windows-msvc toolchain
Modify your project cargo configuration to use the {x86, x86_64}-win7-windows-msvc toolchain.
```shell
rustup component add rust-src
rustup target add i686-win7-windows-msvc
rustup target add x86_64-win7-windows-msvc
```
```toml
[unstable]
build-std = ["core", "alloc", "std", "proc_macro", "test"]
```
### 3. Build Your Project
Build your project using the {i686, x86_64}-win7-windows-msvc toolchain.
> Remember to use nightly toolchain.
```shell
cargo build --target i686-win7-windows-msvc -Zbuild-std
cargo build --target x86_64-win7-windows-msvc -Zbuild-std
```
## Contributing
Contributions of all kinds are welcome, including:
- Issue reporting
- Pull Request submissions
- Documentation improvements
## License
OldWin is released under the [MIT License](LICENSE).
## Very Very Thanks
- [YY-Thunks](https://github.com/Chuyu-Team/YY-Thunks)
- [VC-LTL5](https://github.com/Chuyu-Team/VC-LTL5)