如何实现 js 和 c++ 的互相调用
1个回答
展开全部
脚本执行的基础是WEB控件,
那么C++在WINDOWS下运行可以装入WEB控件实现脚本调用。
下面是一段引用某位博主的代码可以参考一下。
// vcJscript.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#import "C:/windows/system32/msscript.ocx" // msscript.ocx
using namespace MSScriptControl;
#include <fstream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL); //使用一个变量初始化COM设置,单线程运行
IScriptControlPtr pScriptControl(__uuidof(ScriptControl)); //初始化脚本控件
pScriptControl->Language = "JavaScript"; //设置语言
pScriptControl->AllowUI = TRUE;//设置显示
fstream file;//文件流用于读出JS代码
file.open( "test.js" );
string strFileContent, strTemp;
char szTemp[1024]="";
do
{
file.read(szTemp, 1024);
strFileContent.append( szTemp );//拼接JS文件
memset( szTemp, 0, 1024 );
}
while ( !file.fail() );
file.close();
pScriptControl->AddCode(strFileContent.c_str());//向控件加入代码
VARIANT A = pScriptControl->Eval("main(4);"); //获取返回值
int iRet = A.intVal;
return 0;
}
那么C++在WINDOWS下运行可以装入WEB控件实现脚本调用。
下面是一段引用某位博主的代码可以参考一下。
// vcJscript.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#import "C:/windows/system32/msscript.ocx" // msscript.ocx
using namespace MSScriptControl;
#include <fstream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL); //使用一个变量初始化COM设置,单线程运行
IScriptControlPtr pScriptControl(__uuidof(ScriptControl)); //初始化脚本控件
pScriptControl->Language = "JavaScript"; //设置语言
pScriptControl->AllowUI = TRUE;//设置显示
fstream file;//文件流用于读出JS代码
file.open( "test.js" );
string strFileContent, strTemp;
char szTemp[1024]="";
do
{
file.read(szTemp, 1024);
strFileContent.append( szTemp );//拼接JS文件
memset( szTemp, 0, 1024 );
}
while ( !file.fail() );
file.close();
pScriptControl->AddCode(strFileContent.c_str());//向控件加入代码
VARIANT A = pScriptControl->Eval("main(4);"); //获取返回值
int iRet = A.intVal;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询