1. 程式人生 > >【RPA幹貨來襲】 使用 C/C++ 擴展 UiBot 的功能

【RPA幹貨來襲】 使用 C/C++ 擴展 UiBot 的功能

分享圖片 文件 images cto 整數 什麽 現在 復制 plugin

本期教程將為大家講解如何使用 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的extend\lua_mod目錄中即可。

16、 在UiBot中如下書寫,即可調用插件中的add函數(假設插件名稱為MyPlugin):

Import MyPlugin

Dim result = MyPlugin.add(100, 200)

現在下載

還有機會參與到我們的活動當中!

還等什麽?趕快來體驗!

活動期間(1月16日至2月5日)下載註冊登錄UiBot不僅有機會可以和產品大牛、技術大神親密接觸,還有更多高級培訓課程、個人版年卡等豐厚獎品等你來拿。

我們每一次努力
只為讓用戶獲得更好的體驗!
技術分享圖片

【RPA幹貨來襲】 使用 C/C++ 擴展 UiBot 的功能