#pragma once #include #include #include #include extern "C" { // 编排/config 工厂(V1)。 // 创建 mission 配置实例。 using CreateMissionConfigV1Func = eui_frameworkSdk::IMissionConfig* (*)(); // 销毁 mission 配置实例。 using DestroyMissionConfigV1Func = void (*)(eui_frameworkSdk::IMissionConfig* mission); // 算法工厂(V1,可选——仅拆分算法的 mission 导出)。 // 创建 mission 算法实例。 using CreateMissionAlgoV1Func = eui_frameworkSdk::IMissionAlgo* (*)(); // 销毁 mission 算法实例。 using DestroyMissionAlgoV1Func = void (*)(eui_frameworkSdk::IMissionAlgo* algo); // 获取插件使用的 SDK ABI 版本。 using FrameworkSdkAbiVersionFunc = int (*)(); } // 导出编排 mission 的完整符号集:abi 版本 + config 工厂。 #define FRAMEWORK_SDK_EXPORT_MISSION_V1(ConfigType) \ /* 返回插件使用的 SDK ABI 版本。 */ \ extern "C" Q_DECL_EXPORT int frameworkSdkAbiVersion() \ { \ return eui_frameworkSdk::kFrameworkSdkAbiVersion; \ } \ /* 创建 mission 配置实例。 */ \ extern "C" Q_DECL_EXPORT eui_frameworkSdk::IMissionConfig* createMissionConfigV1() \ { \ return new ConfigType(); \ } \ /* 销毁 mission 配置实例。 */ \ extern "C" Q_DECL_EXPORT void destroyMissionConfigV1(eui_frameworkSdk::IMissionConfig* mission) \ { \ delete mission; \ } // 导出可独立热重载的算法单元(可选,与上面的宏配合使用)。 #define FRAMEWORK_SDK_EXPORT_MISSION_ALGO_V1(AlgoType) \ /* 创建 mission 算法实例。 */ \ extern "C" Q_DECL_EXPORT eui_frameworkSdk::IMissionAlgo* createMissionAlgoV1() \ { \ return new AlgoType(); \ } \ /* 销毁 mission 算法实例。 */ \ extern "C" Q_DECL_EXPORT void destroyMissionAlgoV1(eui_frameworkSdk::IMissionAlgo* algo) \ { \ delete algo; \ }