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

43次阅读

共计 1736 个字符,预计需要花费 5 分钟才能阅读完成。

本期教程将为大家讲解如何使用 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 中文版。在插件的命名中,建议英文字母全部采用大写。这样的话,在脚本中使用插件时,无论是大写还是小写,都能正确识别到。因为编译器会用全大写的形式去尝试一次。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 不仅有机会可以和产品大牛、技术大神亲密接触,还有更多高级培训课程、个人版年卡等丰厚奖品等你来拿。
我们每一次努力只为让用户获得更好的体验!

正文完
 0