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/chpA 著作权归作者所有。请勿转载和采集!