ThreatSourceLibaray/README.md

159 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ThreatSource Library
威胁源仿真库是一个用于模拟和仿真各种威胁源的.NET类库。提供 .NET 和原生 C++ 两种接口。
## 编译和打包
### 编译 .NET 库
编译 Debug 版本:
```bash
dotnet build ThreatSource/ThreatSource.csproj
```
编译 Release 版本:
```bash
dotnet build ThreatSource/ThreatSource.csproj -c Release
```
### 编译原生库
1. 使用 Visual Studio 2022 打开 ThreatSourceNative/ThreatSourceNative.vcxproj
2. 选择配置Release平台x64
3. 编译解决方案
### 打包
#### 打包 .NET 库
使用打包脚本生成 zip 包:
```bash
./scripts/pack_dll.sh
```
生成的文件位于 `publish` 目录下,文件名格式为 `ThreatSourceLibrary-{version}.zip`
包含以下文件:
- ThreatSource.dll - 主要的库文件
- ThreatSource.deps.json - 依赖配置文件
- ThreatSource.xml - API 文档文件
#### 打包原生库
使用打包脚本生成 zip 包:
```bash
./scripts/pack_native.sh
```
生成的文件位于 `publish` 目录下,文件名格式为 `ThreatSourceNative-{version}.zip`
包含以下文件:
- bin/ThreatSourceNative.dll - 原生接口库
- bin/ThreatSource.dll - 核心库
- bin/ThreatSource.deps.json - 依赖配置文件
- include/threat_source.h - C接口头文件
### 生成文档
生成 PDF 格式的文档:
```bash
# 先生成 HTML 文档
docfx build docfx.json
# 然后生成 PDF
./scripts/generate_pdf.sh
```
生成的 PDF 文件位于 `publish` 目录下,文件名为 `ThreatSource-Library.pdf`
## 项目结构
```text
ThreatSource/
├── src/
│ ├── Target/
│ │ └── Tank.cs
│ ├── Indicator/
│ │ ├── LaserDesignator.cs
│ │ ├── LaserBeamRider.cs
│ │ └── InfraredTracker.cs
│ └── Missile/
│ ├── BaseMissile.cs
│ ├── LaserBeamRiderMissile.cs
│ ├── InfraredCommandGuidedMissile.cs
│ ├── LaserSemiActiveGuidedMissile.cs
│ ├── InfraredImagingTerminalGuidedMissile.cs
│ ├── MillimeterWaveTerminalGuidedMissile.cs
│ ├── TerminalSensitiveMissile.cs
│ └── TerminalSensitiveSubmunition.cs
├── docs/ - 文档目录
├── ThreatSourceNative/ - 原生接口库
│ ├── include/
│ │ └── threat_source.h - C接口头文件
│ └── src/
│ └── threat_source.cpp - C接口实现
└── scripts/ - 工具脚本目录
├── pack_dll.sh - .NET库打包脚本
├── pack_native.sh - 原生库打包脚本
└── generate_pdf.sh - PDF生成脚本
```
## 开发环境要求
- .NET 8.0 或更高版本
- Visual Studio 2022 或更高版本
- DocFX用于生成文档
- wkhtmltopdf用于生成 PDF
## 使用说明
### C#/.NET 用户
1. 通过 NuGet 包管理器安装:
```bash
dotnet add package ThreatSource
```
2. 或直接引用 DLL 文件:
- 下载最新的 zip 包
- 解压并引用 ThreatSource.dll
### C++用户
有两种使用方式:
#### 方式一:动态加载(推荐)
1. 下载 ThreatSourceNative 包
2. 将 bin 目录下的所有 DLL 复制到程序目录
3. 将 include/threat_source.h 添加到项目
4. 使用 C 风格接口调用库功能
#### 方式二CLR 集成
如果需要使用 .NET 的完整功能:
1. 配置项目属性:
- C/C++ -> 常规 -> 公共语言运行时支持:/clr
- 常规 -> 平台工具集Visual Studio 2022 (v143)
- 常规 -> .NET目标框架net8.0
2. 引用 ThreatSource.dll
## 示例代码
请参考 [docs/examples](docs/examples) 目录下的示例代码:
- [集成示例](docs/examples/Integration/README.md)
- [仿真示例](docs/examples/Simulation/README.md)
## 许可证
MIT License