如何实现 js 和 c++ 的互相调用

如何实现 js 和 c++ 的互相调用,第1张

脚本执行的基础是WEB控件,

那么C++在WINDOWS下运行可以装入WEB控件实现脚本调用。

下面是一段引用某位博主的代码可以参考一下。

// vcJscriptcpp : 定义控制台应用程序的入口点。

//

#include "stdafxh"

#import "C:/windows/system32/msscriptocx" // msscriptocx

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代码

fileopen( "testjs" );

string strFileContent, strTemp;

char szTemp[1024]="";

do

{

fileread(szTemp, 1024);

strFileContentappend( szTemp );//拼接JS文件

memset( szTemp, 0, 1024 );

}

while ( !filefail() );

fileclose();

pScriptControl->AddCode(strFileContentc_str());//向控件加入代码

VARIANT A = pScriptControl->Eval("main(4);"); //获取返回值

int iRet = AintVal;

return 0;

}

api接口指的是应用程序编程接口(Application Programming Interface),是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问原码,或理解内部工作机制的细节。

然后可以通过getElementById("id")等方法获取到html元素,再使用innerHTML将获取到的值插入html。

需要准备的材料分别有:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:indexhtml,填充问题基础代码。

2、在indexjs中,实现func1和func2函数。

3、在indexhtml中,新增第3个button,并调用func3()方法,并在<script>标签中输入js代码:

function func3() {

$('body')append('use func3<br/>');

}

4、浏览器运行indexhtml页面,此时点击“函数3”按钮,能正常执行func3函数来输出内容。

可以1)使用JS启动本地应用程序

clipboard

使用上述代码重点是创建了一个ActiveXObject的对象

参考说明:

JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用。使用方法:

newObj = new ActiveXObject( servernametypename[, location])

ActiveXObject 对象语法有这些部分:

其中newObj是必选项。要赋值为 ActiveXObject 的变量名。

servername是必选项。提供该对象的应用程序的名称。

typename是必选项。要创建的对象的类型或类。

location是可选项。创建该对象的网络服务器的名称。

Automation服务器至少提供一类对象,例如字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。

例如要创建Excel的Application和Sheet对象,代码如下:

var ExcelApp = new ActiveXObject("ExcelApplication");

var ExcelSheet = new ActiveXObject("ExcelSheet")

一旦对象被创建,就可以用定义的对象变量在代码中的引用它。下面我们将通过一个例子来看看对对象和方法的引用,通过对象变量 ExcelSheet 访问新对象的属性和方法和其他 Excel 对象,包括 Application 对象和 ActiveSheetCells 集合。代码如下:

1 ExcelSheetApplicationVisible = true;

2 ExcelSheetActiveSheetCells(1,1)Value = "This is column A, row 1";

3 ExcelSheetSaveAs("C:\\TESTXLS");

4 ExcelSheetApplicationQuit();

(2)经过(1)的代码设置之后,就可以执行程序,但是ActiveXObject是在浏览器中执行的,浏览器需要进行一些设置保证上述JS代码可以正常的执行。

具体设置如下;

clipboard

如上所示可以对计算机的ActiveX控件和插件进行设置,使得可以正常执行IE调用本地应用程序

(2)使用JS调用屏幕键盘

上述JS中的代码:

var obj=new ActiveXObject('wscriptshell');

objrun("osk"); //打开屏幕键盘

objrun(location); //其中location是QQ应用程序的本地地址(地址需要使用“//”)

以上就是关于如何实现 js 和 c++ 的互相调用全部的内容,包括:如何实现 js 和 c++ 的互相调用、Js调用api接口、怎么编写和调用js文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10058709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存