易语言调用 Lua DLL
在做一个易语言框架,全面支持 Lua .而Cheat Engine 支持 Lua,这样就可以将Cheat Engine 自带的库与之前积累的 易库打通。
踩过的坑
1. Lua DLL 中不同版本的函数有差异,通过Lua 手册,部分找不到。
2. Lua 源码使用 Visual Studio 生成 DLL 其中的自己改写的代码会被名称。具体可通过 dumpbin export 查看
3. Lua DLL 中宏定义和常量不能被调用,需要转成函数输出。
4. 易语言掉用 Lua DLL 找不到指定函数,这个时候多半是宏定义,需要找到源码写函数实现。
Dump of file LuaCoreDLL.dll
File Type: DLL
Section contains the following exports for LuaCoreDLL.dll
00000000 characteristics
FFFFFFFF time date stamp
0.00 version
1 ordinal base
154 number of functions
154 number of names
ordinal hint RVA name
1 0 00001290 _Lua_Close@4 = _Lua_Close@4
2 1 00001060 _Lua_DoString@16 = _Lua_DoString@16
3 2 000011C0 _Lua_GetGlobalString@16 = _Lua_GetGlobalString@16
4 3 00001000 _Lua_Init@0 = _Lua_Init@0
5 4 00001500 _Lua_RegisterEFunc_Number@12 = _Lua_RegisterEFunc_Number@12
6 5 000014C0 _Lua_RegisterEFunc_String@12 = _Lua_RegisterEFunc_String@12
7 6 00001480 _Lua_RegisterEFunc_Void@12 = _Lua_RegisterEFunc_Void@12
8 7 00001540 __luaL_dostring@8 = __luaL_dostring@8
9 8 00005D00 luaL_addlstring = _luaL_addlstring
10 9 00005D30 luaL_addstring = _luaL_addstring
11 A 00005E40 luaL_addvalue = _luaL_addvalue
12 B 00004EB0 luaL_argerror = _luaL_argerror
13 C 00005EF0 luaL_buffinit = _luaL_buffinit
14 D 00005F20 luaL_buffinitsize = _luaL_buffinitsize
15 E 000065F0 luaL_callmeta = _luaL_callmeta
16 F 00005650 luaL_checkany = _luaL_checkany
17 10 000058A0 luaL_checkinteger = _luaL_checkinteger
18 11 00005680 luaL_checklstring = _luaL_checklstring
19 12 00005720 luaL_checknumber = _luaL_checknumber
20 13 00005520 luaL_checkoption = _luaL_checkoption
21 14 000055E0 luaL_checkstack = _luaL_checkstack
22 15 00005620 luaL_checktype = _luaL_checktype
23 16 000054F0 luaL_checkudata = _luaL_checkudata
24 17 000070E0 luaL_checkversion_ = _luaL_checkversion_
25 18 000050C0 luaL_error = _luaL_error
26 19 000051D0 luaL_execresult = _luaL_execresult
27 1A 00005100 luaL_fileresult = _luaL_fileresult
28 1B 00006550 luaL_getmetafield = _luaL_getmetafield
29 1C 00006BE0 luaL_getsubtable = _luaL_getsubtable
30 1D 00006DE0 luaL_gsub = _luaL_gsub
31 1E 00006660 luaL_len = _luaL_len
32 1F 00006490 luaL_loadbufferx = _luaL_loadbufferx
33 20 000061B0 luaL_loadfilex = _luaL_loadfilex
34 21 000064F0 luaL_loadstring = _luaL_loadstring
35 22 00005290 luaL_newmetatable = _luaL_newmetatable
36 23 000070C0 luaL_newstate = _luaL_newstate
37 24 00011140 luaL_openlibs = _luaL_openlibs
38 25 00005950 luaL_optinteger = _luaL_optinteger
39 26 000056B0 luaL_optlstring = _luaL_optlstring
40 27 000057C0 luaL_optnumber = _luaL_optnumber
41 28 00005AD0 luaL_prepbuffsize = _luaL_prepbuffsize
42 29 00005D70 luaL_pushresult = _luaL_pushresult
43 2A 00005E20 luaL_pushresultsize = _luaL_pushresultsize
44 2B 00005F50 luaL_ref = _luaL_ref
45 2C 00006CD0 luaL_requiref = _luaL_requiref
46 2D 00006AF0 luaL_setfuncs = _luaL_setfuncs
47 2E 000053C0 luaL_setmetatable = _luaL_setmetatable
48 2F 000053F0 luaL_testudata = _luaL_testudata
49 30 000066D0 luaL_tolstring = _luaL_tolstring
50 31 00004A40 luaL_traceback = _luaL_traceback
51 32 00006030 luaL_unref = _luaL_unref
52 33 00005020 luaL_where = _luaL_where
53 34 00001710 lua_absindex = _lua_absindex
54 35 00001E80 lua_arith = _lua_arith
55 36 000016D0 lua_atpanic = _lua_atpanic
56 37 000039B0 lua_callk = _lua_callk
57 38 000015D0 lua_checkstack = _lua_checkstack
58 39 00020490 lua_close = _lua_close
59 3A 00001EC0 lua_compare = _lua_compare
60 3B 000040E0 lua_concat = _lua_concat
61 3C 000018A0 lua_copy = _lua_copy
62 3D 00002F20 lua_createtable = _lua_createtable
63 3E 00003E00 lua_dump = _lua_dump
64 3F 00004040 lua_error = _lua_error
65 40 00003EC0 lua_gc = _lua_gc
66 41 000041C0 lua_getallocf = _lua_getallocf
67 42 00002AE0 lua_getfield = _lua_getfield
68 43 000029A0 lua_getglobal = _lua_getglobal
69 44 0000C6B0 lua_gethook = _lua_gethook
70 45 0000C6D0 lua_gethookcount = _lua_gethookcount
71 46 0000C6C0 lua_gethookmask = _lua_gethookmask
72 47 00002B90 lua_geti = _lua_geti
73 48 0000CE70 lua_getinfo = _lua_getinfo
74 49 0000C850 lua_getlocal = _lua_getlocal
75 4A 00002FC0 lua_getmetatable = _lua_getmetatable
76 4B 0000C6E0 lua_getstack = _lua_getstack
77 4C 00002A20 lua_gettable = _lua_gettable
78 4D 00001740 lua_gettop = _lua_gettop
79 4E 00004290 lua_getupvalue = _lua_getupvalue
80 4F 00003070 lua_getuservalue = _lua_getuservalue
81 50 00001AE0 lua_iscfunction = _lua_iscfunction
82 51 00001B60 lua_isinteger = _lua_isinteger
83 52 00001C00 lua_isnumber = _lua_isnumber
84 53 00001C90 lua_isstring = _lua_isstring
85 54 00001D10 lua_isuserdata = _lua_isuserdata
86 55 0000E880 lua_isyieldable = _lua_isyieldable
87 56 00004140 lua_len = _lua_len
88 57 00003CF0 lua_load = _lua_load
89 58 00020240 lua_newstate = _lua_newstate
90 59 00020120 lua_newthread = _lua_newthread
91 5A 00004200 lua_newuserdata = _lua_newuserdata
92 5B 00004050 lua_next = _lua_next
93 5C 00003AD0 lua_pcallk = _lua_pcallk
94 5D 00002890 lua_pushboolean = _lua_pushboolean
95 5E 000027F0 lua_pushcclosure = _lua_pushcclosure
96 5F 000027B0 lua_pushfstring = _lua_pushfstring
97 60 00002690 lua_pushinteger = _lua_pushinteger
98 61 000028B0 lua_pushlightuserdata = _lua_pushlightuserdata
99 62 000026C0 lua_pushlstring = _lua_pushlstring
100 63 00002650 lua_pushnil = _lua_pushnil
101 64 00002670 lua_pushnumber = _lua_pushnumber
102 65 00002720 lua_pushstring = _lua_pushstring
103 66 000028D0 lua_pushthread = _lua_pushthread
104 67 000019B0 lua_pushvalue = _lua_pushvalue
105 68 00002770 lua_pushvfstring = _lua_pushvfstring
106 69 00001D90 lua_rawequal = _lua_rawequal
107 6A 00002CD0 lua_rawget = _lua_rawget
108 6B 00002D60 lua_rawgeti = _lua_rawgeti
109 6C 00002E60 lua_rawgetp = _lua_rawgetp
110 6D 00002320 lua_rawlen = _lua_rawlen
111 6E 00003540 lua_rawset = _lua_rawset
112 6F 00003620 lua_rawseti = _lua_rawseti
113 70 000036E0 lua_rawsetp = _lua_rawsetp
114 71 0000E660 lua_resume = _lua_resume
115 72 000017B0 lua_rotate = _lua_rotate
116 73 000041E0 lua_setallocf = _lua_setallocf
117 74 00003320 lua_setfield = _lua_setfield
118 75 000031B0 lua_setglobal = _lua_setglobal
119 76 0000C670 lua_sethook = _lua_sethook
120 77 000033D0 lua_seti = _lua_seti
121 78 0000C940 lua_setlocal = _lua_setlocal
122 79 000037E0 lua_setmetatable = _lua_setmetatable
123 7A 00003230 lua_settable = _lua_settable
124 7B 00001760 lua_settop = _lua_settop
125 7C 00004380 lua_setupvalue = _lua_setupvalue
126 7D 000038E0 lua_setuservalue = _lua_setuservalue
127 7E 00003EB0 lua_status = _lua_status
128 7F 00001FE0 lua_stringtonumber = _lua_stringtonumber
129 80 00002160 lua_toboolean = _lua_toboolean
130 81 000023F0 lua_tocfunction = _lua_tocfunction
131 82 000020B0 lua_tointegerx = _lua_tointegerx
132 83 000021E0 lua_tolstring = _lua_tolstring
133 84 00002000 lua_tonumberx = _lua_tonumberx
134 85 00002580 lua_topointer = _lua_topointer
135 86 00002500 lua_tothread = _lua_tothread
136 87 00002470 lua_touserdata = _lua_touserdata
137 88 00001A60 lua_type = _lua_type
138 89 00001AD0 lua_typename = _lua_typename
139 8A 000045A0 lua_upvalueid = _lua_upvalueid
140 8B 00004640 lua_upvaluejoin = _lua_upvaluejoin
141 8C 000016F0 lua_version = _lua_version
142 8D 00001690 lua_xmove = _lua_xmove
143 8E 0000E8A0 lua_yieldk = _lua_yieldk
144 8F 00008C70 luaopen_base = _luaopen_base
145 90 00008D20 luaopen_bit32 = _luaopen_bit32
146 91 0000AA20 luaopen_coroutine = _luaopen_coroutine
147 92 0000C530 luaopen_debug = _luaopen_debug
148 93 000134D0 luaopen_io = _luaopen_io
149 94 00016730 luaopen_math = _luaopen_math
150 95 0001A780 luaopen_os = _luaopen_os
151 96 000181E0 luaopen_package = _luaopen_package
152 97 00025130 luaopen_string = _luaopen_string
153 98 000277E0 luaopen_table = _luaopen_table
154 99 000299F0 luaopen_utf8 = _luaopen_utf8
Summary
1000 .data
5000 .rdata
2000 .reloc
1000 .rsrc
2E000 .text

浙公网安备 33010602011771号