MFC 运行 JScript 脚本:详细步骤和示例
MFC 可以通过使用 Active Scripting 技术来运行 JScript 脚本。以下是一个简单的示例:
- 添加头文件:
#include <activscp.h>
- 声明变量:
IActiveScript* pActiveScript = NULL;
IActiveScriptParse* pActiveScriptParse = NULL;
IActiveScriptSite* pActiveScriptSite = NULL;
IActiveScriptSiteWindow* pActiveScriptSiteWindow = NULL;
IDispatch* pDispatch = NULL;
- 创建 Active Script 引擎:
CoInitialize(NULL);
CoCreateInstance(CLSID_JScript, NULL, CLSCTX_INPROC_SERVER, IID_IActiveScript, (void**)&pActiveScript);
- 创建 Active Script 解析器:
pActiveScript->QueryInterface(IID_IActiveScriptParse, (void**)&pActiveScriptParse);
- 创建 Active Script 站点:
pActiveScriptSite = new CMyActiveScriptSite();
- 设置 Active Script 站点窗口:
pActiveScriptSiteWindow = new CMyActiveScriptSiteWindow();
pActiveScriptSiteWindow->Attach(hWnd);
pActiveScriptSite->SetSiteWindow(pActiveScriptSiteWindow);
- 将 Active Script 站点设置为解析器的站点:
pActiveScriptParse->InitNew();
pActiveScript->SetScriptSite(pActiveScriptSite);
- 解析 JScript 脚本:
pActiveScriptParse->ParseScriptText(L'alert('Hello, world!');', NULL, NULL, NULL, 0, 0, SCRIPTTEXT_ISVISIBLE, NULL, NULL);
- 执行 JScript 脚本:
pActiveScript->SetScriptState(SCRIPTSTATE_CONNECTED);
pActiveScript->SetScriptState(SCRIPTSTATE_STARTED);
- 清理资源:
pActiveScript->Close();
pActiveScriptParse->Release();
pActiveScriptSite->Release();
pActiveScriptSiteWindow->Detach();
pActiveScriptSiteWindow->Release();
pActiveScript->Release();
CoUninitialize();
以上是一个简单的示例,具体实现还需要根据实际需求进行调整。
原文地址: https://www.cveoy.top/t/topic/jMOx 著作权归作者所有。请勿转载和采集!