Я хочу реализовать функцию, например, встроить функцию сокета в мою сборку Lua. Так что мне больше не нужно копировать socket.core.dll (просто для удовольствия).
Я просматриваю список рассылки и вижу, как некоторые ребята обсуждают эту тему, http://lua-users.org/lists/lua-l/2005-10/msg00269.html
Но у меня есть вопрос по подробным шагам, кто мог бы дать мне подробные шаги по изменению кода lua и luasocket, чтобы заставить их работать вместе (не с методом dll).
Я попробовал эти шаги в Windows XP с VC2008:
1) скопируйте код luasocket в проект Lua.
2) добавить немного кода
static const luaL_Reg lualibs[] = {
{"", luaopen_base},
{LUA_LOADLIBNAME, luaopen_package},
{LUA_TABLIBNAME, luaopen_table},
{LUA_IOLIBNAME, luaopen_io},
{LUA_OSLIBNAME, luaopen_os},
{LUA_STRLIBNAME, luaopen_string},
{LUA_MATHLIBNAME, luaopen_math},
{LUA_DBLIBNAME, luaopen_debug},
{LUA_SOCKETLIBNAME, luaopen_socket_core}, // add this line
{LUA_MIMELIBNAME, luaopen_socket_core}, // add this line
{NULL, NULL}
};
3) построить проект и запустить его.
Когда я набираю print(socket._VERSION)
, он показывает luasocket 2.0.2
, это правильно.
Когда я набираю print(socket.dns.toip("localhost"))
, он показывает 127.0.0.1 table: 00480AD0
, это тоже правильно.
Но когда я пытаюсь использовать другие функции, например привязку, это не сработает.
Кто может сказать мне причину?