SuperAPI AI 工具集

ShareX Architecture and Porting

通用与其它

查看项目

更新于 10-16 01:50

技能介绍

本技能用于在新增原生集成或移植 ShareX 代码时,遵循 XerahS 的平台抽象架构。

用途:确保平台相关功能统一隔离在平台抽象接口之后,禁止在 XerahS.Platform.* 之外的项目引用 NativeMethods、NativeConstants、NativeEnums、NativeStructs、Win32 P/Invoke、System.Windows.Forms,以及 Windows 专有句柄或消息。Common、Core、Uploaders、Media 等后端项目不得直接调用 Windows API。

主要能力与结构:在 XerahS.Platform.Abstractions 定义平台中立的接口;在 XerahS.Platform.Windows 实现 Windows 功能;为 XerahS.Platform.Linux、XerahS.Platform.MacOS 提供存根实现。仅 Windows 可用的能力仍须先定义抽象接口,其他平台以抛出 PlatformNotSupportedException 或返回安全空操作并记录警告的方式处理,UI 与工作流需检测能力可用性并禁用或隐藏不支持功能。

移植规则:仅当文件不引用 NativeMethods 及相关原生助手、WinForms 类型和 Windows 专有互操作时才能直接移植。若逻辑与原生调用混合,应将纯逻辑提取到 Common 或 Core,把原生代码移入 XerahS.Platform.Windows,并把调用点替换为接口调用。移植 ShareX.HelpersLib 时,涉及 NativeMethods.cs、NativeMethods_Helpers.cs、NativeMessagingHost.cs,以及 DWM、钩子、剪贴板或输入 API 的文件,必须视为平台代码,不可整体复制。

总体目标:先移植 ShareX 后端,再设计 Avalonia UI;不重用 WinForms 或其 UI 代码,只复制非 UI 方法与数据模型。建议解决方案结构包括 XerahS.Common、Core、Uploaders、History、Indexer、ImageEffects、Media、ScreenCapture、Platform.*,App 与 UI 待后端就绪后再做。

历史对齐:需要与某提交保持功能一致时,避免反复调用 git 查询历史,可建临时 ref 目录,用 git show <commit_hash>:<file_path> > src/XerahS/ref/<commit_short>_<filename> 下载参考文件,本地比对,完成后清理 ref 目录(除非另有指示)。

限制:资料未提供具体安装命令、依赖版本、许可证信息或价格;相关事实暂未提供。