嵌入式Lua不能打印到已分配的控制台。

我的代码如下(Windows 平台):

AllocConsole();
FILE *fp = freopen("CONOUT$", "w", stdout); //无法找到文档说明 CONOUT$ 实际上是什么
lua_State *lua_state = luaL_newstate();
luaL_openlibs(lua_state);
if(luaL_dostring(lua_state, "print 'It works!'"))
{
    printf("%s\n", lua_tostring(lua_state, -1));
}

我无法获得 Lua 输出,但普通的 printf 可以工作(Lua 错误也会打印)。

点赞
用户1707720
用户1707720

另一个可能的原因是 luaxx.dll 被发布了,而测试项目是 debug 版本。因此,luaxx.dll 使用的是 msvcrxx.dll,但测试项目使用的是 msvcrxxd.dll——微软 c 运行时的 debug 版本。

2013-10-24 09:17:34