MFC 应用程序的可嵌入脚本编辑器






4.90/5 (57投票s)
2003 年 7 月 16 日
2分钟阅读

351916

6362
一个库,允许您将脚本功能嵌入到您的 C++ MFC 应用程序中。
对象事件列表
弹出对象属性和方法列表
类似 IntelliSense 的函数参数工具提示
引言
我一直在网上寻找一个合适的且价格合理的解决方案,以便将脚本功能嵌入到我的 C++ 应用程序中。我发现的要么不够用,要么花费很多钱。
所以我决定自己制作一个。经过大约一个月的努力和测试,我开发出了这个可嵌入的脚本引擎。
我把它做成了一个单独的 DLL,使用起来非常简单。
用法
- 下载源代码并编译它。确保编译正确的版本(Debug\Release)或两者都编译。
- 在您的项目中包含 ScriptEditor.h 并将库 ScriptEditor.lib 添加到您的附加库中。确保引用正确的版本!调试版本用于调试,发布版本用于发布!
- 将 DLL 复制到与您的可执行文件相同的文件夹中。
- 在您的代码中创建
CScripter
的实例并初始化它。 - 将您的对象添加到脚本中,并可选地添加脚本文本。
示例
在您的主应用程序窗口的头文件中添加
#include "..\ScriptEditor\Scripter.h"
添加成员变量
CScripter scripter;
然后在初始化时添加
scripter.CreateEngine("VBScript");
之后,将您的对象添加到脚本中
scripter.AddObject("MPlayer",(IDispatch *)m_mediaPlayer.GetControlUnknown()); scripter.AddObject("PlayButton", (IDispatch *)m_commandButton.GetControlUnknown()); scripter.AddObject("TabStrip",(IDispatch *)m_tabStrip.GetControlUnknown()); scripter.AddObject("SimpleObject",m_simpleObject.GetIDispatch(TRUE));
并可选地设置脚本文本
scripter.scriptText = "MsgBox \"Test message\"";
之后,脚本就可以运行了,您现在可以执行以下操作之一
// Run the script scripter.StartScript(); // Stop the script execution scripter.StopScript(); // Open the script editor window scripter.LaunchEditor(); // Reset the script (All added objects are removed and engine is recreated) scripter.Reset();
历史
这是第一个版本,所以可能不是没有错误。我已经尽力跟踪任何错误,但总会有意外情况发生。因此,我将在此处发布任何后续的添加、补丁和修复。
- 2003 年 7 月 19 日 - DLL 源代码已更新,可在 VS.NET 中编译(请阅读下面的消息)
致谢
- 感谢 Gil Eizenburg 的调试和测试。
- 感谢 Smaller Animals Software, Inc. 提供 ColorEditWnd 类。
- 感谢 Daniel Madden 提供 CTokenEx 类。