本章内容主要讨论了如何在标准C语言中实现COM(Component Object Model)的高级特性,特别是关于脚本代码的持久化和交互。在之前的章节中,已经构建了一个基础的Activex脚本宿主,但现在我们将探索更深入的技术。 首先,脚本代码的持久化是关键点。在传统的脚本宿主功能中,脚本引擎会在每次运行时加载、分析和执行脚本,然后在执行完成后释放。为了使某些脚本能够在引擎中保持存在,即使未被立即执行,我们需要在`ParseScriptText`函数中使用`SCRIPTTEXT_ISPERSISTENT`标志。这个标志指示引擎应保留已解析的脚本内容,即使`ParseScriptText`函数返回后也不卸载。 其次,添加“宏”(即预先编译的脚本片段)时,必须确保IActiveScript对象在引擎处于INITIALIZED状态时添加,但在转换为STARTED或CONNECTED状态之前。这是因为如果在引擎运行过程中添加,那些宏可能会因为引擎状态的变化而被卸载。一个示例可以在ScriptHost7目录中的代码中看到,这里引入了一个VB脚本作为全局变量,并显式地设置了`SCRIPTTEXT_ISPERSISTENT`。 脚本中的特定函数调用和变量值的查询与设置也是重要的部分。通过使用接口,可以允许外部脚本或程序调用预先定义的宏中的函数,增强了脚本的可重用性和灵活性。同时,通过访问引擎内部存储的变量,开发者可以动态地查询和修改脚本环境中的值。 在脚本代码和“命名项”(Name Space)的关系中,用户可能希望将相关的脚本片段组织在一起,形成一个命名空间,以避免命名冲突。这可以通过在脚本宿主中管理这些命名空间来实现,确保每个脚本段都有清晰的标识和范围。 这一章节扩展了标准C编写COM脚本的能力,不仅关注基础功能,还涵盖了如何处理脚本的持久化、宏管理以及与之相关的变量操作,这些都是在开发复杂COM应用时必不可少的高级特性。通过学习这些内容,开发者能够更好地构建灵活且可维护的脚本宿主应用程序。
剩余11页未读,继续阅读
- 粉丝: 649
- 资源: 51
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity UGUI性能优化实战:UGUI_BatchDemo示例
- Java实现小游戏飞翔的小鸟教程分享
- Ant Design 4.16.8:企业级React组件库的最新更新
- Windows下MongoDB的安装教程与步骤
- 婚庆公司响应式网站模板源码下载
- 高端旅行推荐:官网模板及移动响应式网页设计
- Java基础教程:类与接口的实现与应用
- 高级版照片排版软件功能介绍与操作指南
- 精品黑色插画设计师作品展示网页模板
- 蓝色互联网科技企业Bootstrap网站模板下载
- MQTTFX 1.7.1版:Windows平台最强Mqtt客户端体验
- 黑色摄影主题响应式网站模板设计案例
- 扁平化风格商业旅游网站模板设计
- 绿色留学H5模板:科研教育机构官网解决方案
- Linux环境下EMQX安装全流程指导
- 可爱卡通儿童APP官网模板_复古绿色动画设计