Я хочу реализовать такую функцию, как встраивание функции сокета в мою сборку Lua.
Поэтому мне больше не нужно копировать socket.core.dll (просто для удовольствия).
Я ищу в списке рассылки и вижу, как некоторые ребята обсуждают эту тему,
http://lua -users.org / списки / Lua-л / 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
, это тоже правильно.
Но когда я пытаюсь использовать другие функции, например, bind, он не может работать.
Кто мог бы сказать мне причину?