Lua ビルドにソケット関数を埋め込むような関数を実装したいと考えています。したがって、socket.core.dll をコピーする必要はもうありません (楽しみのためです)。
メーリング リストを検索すると、このトピックについて話し合っている人が何人 かいます。
しかし、詳細な手順について質問があります。lua と luasocket のコードを変更して (dll メソッドではなく) 連携させるための詳細な手順を教えてください。
VC2008 を搭載した Windows XP で次の手順を試しました。
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
しかし、バインドなどの他の機能を使用しようとすると、機能しません。
誰がその理由を教えてくれますか?