【RPA干货来袭】 使用 C/C++ 扩展 UiBot 的功能

栏目: C++ · 发布时间: 5年前

内容简介:本期教程将为大家讲解如何使用 C/C++扩展 UiBot 的功能。1、 安装Visual Studio 2010或更高版本的Visual Studio,不支持更低版本的Visual Studio或其他编程工具/IDE/编译器。2、下载UiBot的C/C++语言插件模板。

本期教程将为大家讲解如何使用 C/C++扩展 UiBot 的功能。

1、 安装Visual Studio 2010或更高版本的Visual Studio,不支持更低版本的Visual Studio或其他编程工具/IDE/编译器。

2、下载UiBot的C/C++语言插件模板。

3、 用Visual Studio打开插件模板中的LuaPlugin.sln文件。

4、 如果使用高版本的Visual Studio,会提示对模版项目进行升级。直接按照提示进行升级即可。

5、打开Visual Studio的Solution Explorer(中文版一般叫做“解决方案资源管理器”),找到项目名称LuaPlugin,按鼠标右键,选择Rename(中文版一般叫做“重命名”),将其改为你自己为插件起的名称,名称支持英文大小写字母、数字和下划线。如下图所示,其中左图为Visual Studio 2010英文版,右图为Visual Studio 2015中文版。

【RPA干货来袭】 使用 C/C++ 扩展 UiBot 的功能

在插件的命名中,建议英文字母全部采用大写。这样的话,在脚本中使用插件时,无论是大写还是小写,都能正确识别到。因为编译器会用全大写的形式去尝试一次。

6、在Solution Explorer(中文版一般叫做“解决方案资源管理器”),可以看到本项目有三个文件:dllmain.cpp、entry.cpp和luaclib.cpp,我们只需要关注luaclib.cpp,其他两个文件一般不用修改。

7、注意:我们已经在项目中包含了 Lua 语言相关的头文件定义,不需要额外定义,更不需要把Lua语言的源码引入到这个项目中来。

8、在luaclib.cpp中,我们已经定义了两个插件函数add和strcat,其功能分别是两个整数相加,以及两个字符串连接。这两个函数仅仅作为例子,不具有实际意义,在充分阅读其源码后,可以将这两个函数删掉。

9、同时,文件的最后还有一个叫module_name的struct,其中的每一行注册了每一个插件函数。可以把其中作为示例的add和strcat删掉。

10、编写你自己的插件函数,函数名可以随意取,但函数类型必须是:

static int (lua_State *L)

11、 你自己的插件函数必须在文件最后的名称为module_name的struct中注册,才可以使用。仿照add和strcat函数进行注册即可。其中每一行有两项内容,第一项是字符串,代表这个插件函数在UiBot中的名字,第二项是插件函数本身的名字。

12、在你自己的插件函数中,请参考示例和Lua的扩展接口文档,明确参数传递规则,以及返回值的规则。

13、 当插件函数的代码中出现各种异常结果时,推荐使用下面的函数抛出一个异常,这个异常会被UiBot捕捉到:

luaL_error(L, msg);

其中,msg是一个字符串,代表你要在异常中附加的信息。

14、在UiBot的脚本中,有数组(Array)和字典(Dictionary)两种数据类型。如果需要在插件中返回一个数组,请按照以下语句书写:

luaL_dostring(L, “return BasicLib.NewTable(1)”);

上述语句会在Lua的栈里面放置一个Table,你可以使用Lua的相关函数来处理这个Table,比如为其增加元素,等等。但这个Table会在UiBot中被识别为一个数组。

类似的,以下语句可以在栈里放置一个Table,但这个Table在UiBot中被识别为一个字典:

luaL_dostring(L, “return BasicLib.NewTable(2)”);

15、插件编写完成后,对其进行编译,会生成一个名为 插件名称.so的文件。把这个文件复制到UiBot的extendlua_mod目录中即可。

16、 在UiBot中如下书写,即可调用插件中的add函数(假设插件名称为MyPlugin):

Import MyPlugin

Dim result = MyPlugin.add(100, 200)

现在下载

还有机会参与到我们的活动当中!

还等什么?赶快来体验!

活动期间(1月16日至2月5日)下载注册登录UiBot不仅有机会可以和产品大牛、技术大神亲密接触,还有更多高级培训课程、个人版年卡等丰厚奖品等你来拿。

我们每一次努力

只为让用户获得更好的体验!

【RPA干货来袭】 使用 C/C++ 扩展 UiBot 的功能


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Numerical Linear Algebra

Numerical Linear Algebra

Lloyd N. Trefethen、David Bau III / SIAM: Society for Industrial and Applied Mathematics / 1997-06-01 / USD 61.00

Numerical Linear Algebra is a concise, insightful, and elegant introduction to the field of numerical linear algebra.一起来看看 《Numerical Linear Algebra》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具