如何在 C++ 中获取预加载模块名称

我想知道是否可以创建一个 C++ 函数来返回(或打印)当前脚本的预加载模块名称。

例如,我想在以下代码中创建 getModuleName() 函数,所以运行代码可以将 A 打印出来:

#include "lua.hpp"

void main()
{
    lua_State *L = luaL_newstate();
    luaL_openlibs(L);
    lua_settop(L, 0);
    luaL_dostring(L, "package.preload['A'] = function ()\n"
                     "local a = {}\n"
                     "a.name = my.getModuleName()\n"
                     "print(a.name)\n"
                     "return a end");
    luaL_dostring(L, "require 'A'\n");
    lua_close(L);
}

我如何在 C++ 中创建 getModuleName() 函数?

如果 C++ 无法实现,那么我想知道是否可以在 Lua 中实现。

P.S: 我正在使用 SWIG 绑定 C++ 代码。

点赞