VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1161|回复: 27

[课程代码] 基于 MSScript 组件封装的操作 JS 脚本的 C++ 类

[复制链接]
51_avatar_middle
online_admins 发表于 2019-5-29 23:36:43 | 显示全部楼层 |阅读模式
近几天有不少网友提出想要 VC驿站 的 POST 教程中涉及的 JS 脚本操作类。
教程中我使用了两种 JS 引擎,一种是使用 火狐浏览器的 JS 引擎 SpiderMonkey 来封装的 C++ 类,这种方式使用起来也倒是不错,但是不同版本的 VS 可能需要编译各自版本的库才行,而且编译库也是个体力活,稍有不慎就入坑了。
另外一种是我使用微软提供的 JS 脚本引擎的 COM 组件 MSScript,这种实现起来能简单方便一点,也不用自己编译 JS 引擎代码,但是如何使用这个组件网上的资料还真是少之又少。
个人也是参考了 codeproject 上面的一个源代码,同时进行了功能的修改和增加,增加了几个接口方便使用。

这里既然大家提出来了,而且我们VC驿站的教程也基本都免费给大家了,所以也干脆把这个 MSScript 的脚本引擎封装类免费放出来提供给大家使用,不为别的,就为了让大家以后多多支持我们VC驿站,互相帮助,互相学习,我们共同进步!

相关接口如下:
  1. class CMSJsMgr
  2. {
  3. public:
  4.         CMSJsMgr(void);
  5.         ~CMSJsMgr(void);

  6. public:
  7.         bool initGlobalContext(); //初始化

  8.         bool runScriptString(LPCTSTR scriptString, _variant_t& retVal); //执行字符串格式的 JS 脚本
  9.         bool runScriptFile(LPCTSTR jsPath, _variant_t* pRetVal = NULL); //从文件加载 JS 脚本并执行
  10.         bool runScriptResFile(UINT jsResID, LPCTSTR jsResType, _variant_t& retVal); //从资源文件加载 JS 脚本并执行

  11.         bool loadScriptFile(LPCTSTR jsPath);

  12.         bool evalFunction(LPCTSTR funName, CJsArray* paramArray, _variant_t& retVal); //执行 JS 脚本中的全局函数
  13.         bool evalObjFunction(LPCTSTR objName, LPCTSTR funName, CJsArray* paramArray, _variant_t& retVal); //执行 JS 脚本中某个对象的方法函数
  14.         bool evalObjFunction(_variant_t& targetObj, LPCTSTR funName, CJsArray* paramArray, _variant_t& retVal); //执行 JS 脚本中某个对象的方法函数

  15.         LPCTSTR GetErrorString(); //获取错误信息

  16. public:
  17.         bool m_bInitOk;
  18.         IScriptControlPtr m_pScript;
  19.         TCHAR m_szError[ERROR_DESC_LEN+1];
  20. };
复制代码


备注:代码中难免有疏漏之处,如有bug,还请跟帖回复,共同维护!

回复后可见哈!

游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
08_avatar_small SummerGull + 1 + 1 你是个好人

查看全部评分





上一篇:第15课 代码实现百度贴吧的回复功能 | 课程代码
87_avatar_middle
在线会员 发表于 2019-5-29 23:48:26 | 显示全部楼层
谢谢老大的无私分享,占头名!
58_avatar_middle
online_vip 发表于 2019-5-29 23:52:34 | 显示全部楼层
谢谢老大分享!
48_avatar_middle
在线会员 发表于 2019-5-30 00:14:07 | 显示全部楼层
顶顶顶起来啊
48_avatar_middle
在线会员 发表于 2019-5-30 00:16:01 | 显示全部楼层
驿站币设置的有点多。。。。
22_avatar_middle
在线会员 发表于 2019-5-30 01:42:57 | 显示全部楼层
感谢分享,下载看看先基于 MSScript 组件封装的操作 JS 脚本的 C++ 类
46_avatar_middle
在线会员 发表于 2019-5-30 07:12:58 | 显示全部楼层
来围观学习一下
61_avatar_middle
donate_vip 发表于 2019-5-30 08:35:36 | 显示全部楼层
太牛逼啦,老大!!!
22_avatar_middle
在线会员 发表于 2019-5-30 10:16:51 | 显示全部楼层
基于 MSScript 组件封装的操作 JS 脚本的 C++ 类基于 MSScript 组件封装的操作 JS 脚本的 C++ 类基于 MSScript 组件封装的操作 JS 脚本的 C++ 类
09_avatar_middle
online_vip 发表于 2019-5-30 11:01:05 | 显示全部楼层
谢谢老大分享!
08_avatar_middle
在线会员 发表于 2019-5-30 13:27:11 | 显示全部楼层
看看支持下楼主
07_avatar_middle
online_vip 发表于 2019-5-30 21:37:18 | 显示全部楼层
基于 MSScript 组件封装的操作 JS 脚本的 C++ 类
37_avatar_middle
online_vip 发表于 2019-6-3 15:11:19 | 显示全部楼层
感谢老大分享,好好学习一下。
75_avatar_middle
在线会员 发表于 2019-6-3 19:04:58 | 显示全部楼层
基于 MSScript 组件封装的操作 JS 脚本的 C++ 类基于 MSScript 组件封装的操作 JS 脚本的 C++ 类
72_avatar_middle
在线会员 发表于 2019-6-4 08:27:34 | 显示全部楼层
回复学习学习,谢谢分享
71_avatar_middle
在线会员 发表于 2019-6-4 09:15:20 | 显示全部楼层
很好.                       
05_avatar_middle
在线会员 发表于 2019-6-4 10:33:10 | 显示全部楼层
感谢分享。
72_avatar_middle
在线会员 发表于 2019-6-5 07:25:23 | 显示全部楼层
好好学习,天天向上。
77_avatar_middle
online_vip 发表于 2019-6-5 09:26:00 | 显示全部楼层
支持老大,下载来看看
14_avatar_middle
online_vip 发表于 2019-6-12 16:21:12 | 显示全部楼层
123123123123123131321
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-9-22 14:54

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表