| .cursor/rules | ||
| docs | ||
| publish | ||
| scripts | ||
| ThreatSource | ||
| ThreatSource.Tests | ||
| ThreatSourceNative | ||
| tools | ||
| .gitignore | ||
| CHANGELOG.md | ||
| docfx-guide.md | ||
| docfx.json | ||
| README.md | ||
| ThreatSource.sln | ||
| VERSION | ||
ThreatSource Library
威胁源仿真库是一个用于模拟和仿真各种威胁源的.NET类库。提供 .NET 和原生 C++ 两种接口。
编译和打包
编译 .NET 库
编译 Debug 版本:
dotnet build ThreatSource/ThreatSource.csproj
编译 Release 版本:
dotnet build ThreatSource/ThreatSource.csproj -c Release
编译原生库
- 使用 Visual Studio 2022 打开 ThreatSourceNative/ThreatSourceNative.vcxproj
- 选择配置:Release,平台:x64
- 编译解决方案
打包
打包 .NET 库
使用打包脚本生成 zip 包:
./scripts/pack_dll.sh
生成的文件位于 publish 目录下,文件名格式为 ThreatSourceLibrary-{version}.zip。
包含以下文件:
- ThreatSource.dll - 主要的库文件
- ThreatSource.deps.json - 依赖配置文件
- ThreatSource.xml - API 文档文件
打包原生库
使用打包脚本生成 zip 包:
./scripts/pack_native.sh
生成的文件位于 publish 目录下,文件名格式为 ThreatSourceNative-{version}.zip。
包含以下文件:
- bin/ThreatSourceNative.dll - 原生接口库
- bin/ThreatSource.dll - 核心库
- bin/ThreatSource.deps.json - 依赖配置文件
- include/threat_source.h - C接口头文件
生成文档
生成 PDF 格式的文档:
# 先生成 HTML 文档
docfx build docfx.json
# 然后生成 PDF
./scripts/generate_pdf.sh
生成的 PDF 文件位于 publish 目录下,文件名为 ThreatSource-Library.pdf。
项目结构
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 用户
-
通过 NuGet 包管理器安装:
dotnet add package ThreatSource -
或直接引用 DLL 文件:
- 下载最新的 zip 包
- 解压并引用 ThreatSource.dll
C++用户
有两种使用方式:
方式一:动态加载(推荐)
- 下载 ThreatSourceNative 包
- 将 bin 目录下的所有 DLL 复制到程序目录
- 将 include/threat_source.h 添加到项目
- 使用 C 风格接口调用库功能
方式二:CLR 集成
如果需要使用 .NET 的完整功能:
-
配置项目属性:
- C/C++ -> 常规 -> 公共语言运行时支持:/clr
- 常规 -> 平台工具集:Visual Studio 2022 (v143)
- 常规 -> .NET目标框架:net8.0
-
引用 ThreatSource.dll
示例代码
请参考 docs/examples 目录下的示例代码:
许可证
MIT License