为了方便起见,最好安装lua for windows,里面已经包含了很多有用的第三方模块。
require(’luacom’) — luacom
ie = luacom.CreateObject(”InternetExplorer.Application”)
ie:Navigate2(”http://sunxiunan.com”)
ie.Visible = true
使用lua调用excel,然后往cell里面填一些数据。
require(’luacom’) — luacom
– Excelの起動
excel = luacom.CreateObject(”Excel.Application”)
excel.Visible = true — 可視状態に
– ワークブックを追加
local book = excel.Workbooks:Add()
local sheet = book.Worksheets(1)
– 適当な値を100個書き込む
for row=1,100 do
sheet.Cells(row, 1).Value2 = math.floor(math.random() * 20)
end
稍微复杂一些的代码
require “luacom”
excel = luacom.CreateObject(”Excel.Application”)
local book = excel.Workbooks:Add()
local sheet = book.Worksheets(1)
excel.Visible = true
– 適当な値を書き込む
for row=1,30 do
for col=1,30 do
sheet.Cells(row, col).Value2 = math.floor(math.random() * 100)
end
end
– 値を調べて50以上のものを黄色でマークする
local range = sheet:Range(”A1″)
for row=1,30 do
for col=1,30 do
local v = sheet.Cells(row, col).Value2
if v > 50 then
local cell = range:Offset(row-1, col-1)
cell:Select()
excel.Selection.Interior.Color = 65535
end
end
end
excel.DisplayAlerts = false — 終了確認を出さないようにする
excel:Quit()
excel = nil
如果想给excel加个图表该怎么做?
require “luacom”
excel = luacom.CreateObject(”Excel.Application”)
local book = excel.Workbooks:Add()
local sheet = book.Worksheets(1)
excel.Visible = true
for row=1,30 do
sheet.Cells(row, 1).Value2 = math.floor(math.random() * 100)
end
local chart = excel.Charts:Add()
chart.ChartType = 4 — xlLine
local range = sheet:Range(”A1:A30″)
chart:SetSourceData(range)
如果想调用windows api,可以用下面的代码
require “alien”
MessageBox = alien.User32.MessageBoxA
MessageBox:types{ret = ‘long’, abi = ’stdcall’, ‘long’, ’string’,
’string’, ‘long’ }
MessageBox(0, “title for test”, “LUA call windows api”, 0)
如何实现回调函数呢?下面的例子展示了回调。
require ‘alien’
–声明了两个函数EnumWindows和GetClassName
EnumWindows = alien.user32.EnumWindows
EnumWindows:types {”callback”, “pointer”, abi=”stdcall”}
GetClassName = alien.user32.GetClassNameA
GetClassName:types {”long”, “pointer”, “int”, abi=”stdcall” }
local buf = alien.buffer(512)
– 会被EnumWindows反复调用,传入windows的handle
local function enum_func(hwnd, p)
GetClassName(hwnd, buf, 511)
print (hwnd..”:”..tostring(buf))
return 1
end
local callback_func = alien.callback(
enum_func,
{”int”, “pointer”, abi=”stdcall”})
EnumWindows(callback_func, nil)
其中函数原型是
BOOL EnumWindows(WNDENUMPROC lpEnumFunc , LPARAM lParam );
int GetClassName(HWND hWnd , LPTSTR lpClassName , int nMaxCount );
其中EnumWindows第一个参数的原型为,这个函数是客户调用时候传入,EnumWindows用它返回
BOOL CALLBACK EnumWindowsProc(HWND hwnd , LPARAM lParam );
其他复杂的使用方法可以参考alien的文档。
相关推荐
lua windows调用可执行文件,包括打开以及关闭。 是想通过windows api来实现,这只是提供一种方式,不见得好用哈。
lua实现webservice调用 通过gsoap 实现 C/C++ 调用web service
strokeit调用api函数.lua,strokeit调用api函数.lua,strokeit调用api函数.lua,strokeit调用api函数.lua,
将C++类导出为.so,并提供给lua调用
luaapi lua中文
C++调用Lua函数 以及Lua调用C++函数
lua 模块调用,vs2012版本,实现了简单的调用功能
.net使用LuaInterface实现与lua的相互调用,
lua 操作excel 表格,读出来生成xml或者其他。供你参考,原创分高,希望能帮到你。 本案例是用来做多国语,请自己放入excel表格,点批处理执行(可以自己修改)。
lua与oc的交互demo,封装了一层luaBridge,开源lua库,lua调用oc的过程
android 与 lua 相互调用
关于tolua++的资料太少,这个通过实例让你知道如何通过tolua++和C++交互,简单明了。 通过5个文件来演示这个tolua++版 hello world hello.lua ,hello.h ,hello.pkg ,...这个程序实现了脚本调用C++类的成员函数方法
基本的调用lua变量与函数,实现文本的获取与显示策略,若要改变显示方式,只要修改move()函数即可.
delphi7与lua相互调用的例子,基本和法和C调用lua差不多
lua与C相互调用例子程序,lua与C相互调用例子程序
实现LUA中调用C++类,并对其封装, LINUX下编译
lua语言和C#方法相互调用; lua语言逐行读取txt文件,并将内容返回给C#; c#和lua语言源代码,VS2010开发工具; 简单实例代码;
LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程
JS和LUA交互,主要是JS和LUA交互实现模版,可以作为参考
Lua是一个很好用的脚本语言,在游戏开发中可以和c++完美结合,我总结的几点使用以及环境配置和大家分享一下,第一c++如何调用lua脚本,第二c++如何调用脚本函数,第三脚本如何调用c++函数。