159 lines
3.7 KiB
Markdown
159 lines
3.7 KiB
Markdown
# 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
|