🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ActiveScriptExecutor.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "ScriptExecutor.hpp"
25#include <memory>
26
27AST_NAMESPACE_BEGIN
28
39class AST_SCRIPT_API ActiveScriptExecutor: public ScriptExecutor
40{
41 // 前向声明内部实现类
42 class Impl;
43
44public:
45 using ScriptExecutor::execute;
46
51 explicit ActiveScriptExecutor(const wchar_t* progId);
52 ~ActiveScriptExecutor() override;
53
54 errc_t initialize() override;
55 void finalize() override;
56 errc_t execute(StringView script, ScriptResult* resultOut=nullptr) override;
57 errc_t evaluate(StringView expression, ScriptResult* resultOut=nullptr) override;
58 std::string getLastError() const override;
59
60 errc_t setVariable(StringView name, StringView value) override;
61 errc_t setVariable(StringView name, double value) override;
62 errc_t setVariable(StringView name, int value) override;
63 errc_t setVariable(StringView name, bool value) override;
64
65 errc_t getVariable(StringView name, std::string& value) const override;
66 errc_t getVariable(StringView name, double& value) const override;
67 errc_t getVariable(StringView name, int& value) const override;
68 errc_t getVariable(StringView name, bool& value) const override;
69
70protected:
72 void setProgID(const wchar_t* progId);
73
74protected:
75 std::unique_ptr<Impl> impl_; // 隐藏 COM 对象与状态
76};
77
80AST_NAMESPACE_END
定义 ActiveScriptExecutor.cpp:31
微软Active系列脚本执行器
定义 ActiveScriptExecutor.hpp:40
void setProgID(const wchar_t *progId)
设置脚本引擎 ProgID(由子类如 JScriptExecutor 在构造时调用)
脚本执行器,用于执行外部脚本
定义 ScriptExecutor.hpp:80
virtual std::string getLastError() const =0
获取最近一次执行脚本时的错误信息
virtual errc_t execute(StringView script, ScriptResult *resultOut=nullptr)=0
执行脚本语句
virtual errc_t initialize()=0
初始化脚本执行器
virtual errc_t setVariable(StringView name, StringView value)=0
设置脚本执行器的变量
virtual errc_t evaluate(StringView expression, ScriptResult *resultOut=nullptr)
对脚本表达式进行求值
定义 ScriptExecutor.cpp:111
virtual errc_t getVariable(StringView name, std::string &value) const =0
获取脚本执行器的字符串变量值
virtual void finalize()=0
结束脚本执行器
脚本执行结果
定义 ScriptExecutor.hpp:64