【问题标题】:Redirecting output in SDL 2在 SDL 2 中重定向输出
【发布时间】:2016-06-30 19:54:42
【问题描述】:

我在我的项目中使用 SDL 库,并且我在 Windows 平台上工作。

当我决定将我的项目迁移到 SDL 2 时,我遇到了一个问题:

在 SDL 1.2 中有一个选项可以将 stdout/stderr 的输出打印到控制台窗口,而不是通过定义 NO_STDIO_REDIRECT 宏来打印到文件。但是,我还没有在 SDL 2 中找到该宏。

有没有办法将 SDL 2 输出打印到控制台而不是标准文件?

【问题讨论】:

  • 您能否添加一些代码示例,您尝试过的内容,您想要的结果。
  • 虽然这里有我的问题的答案wiki.libsdl.org/FAQWindows(最后一个问题),但它指的是旧的 SDL 1.2 版本,而我正在尝试使用新的 SDL 2,并且该方法在无法使用常见问题解答。
  • 您是自己构建 SDLmain.lib 还是使用预构建的?使用带有预建的 MinGW,它不会在我的测试程序中创建 stdout 和 stderr。

标签: sdl sdl-2


【解决方案1】:

我怀疑NO_STDIO_REDIRECT 不再是 SDL2 的一部分。

您应该改用 SDL_Log 和所有其他相关函数来记录应用程序中的消息。
然后你可以使用SDL_LogSetOutputFunction 来:

用你自己的一个替换默认的日志输出函数

请注意,您可以优雅地处理任何给定的类别或优先级,作为以下处理程序的原型:

void SDL_LogOutputFunction(void*           userdata,
                           int             category,
                           SDL_LogPriority priority,
                           const char*     message)

请参阅链接文档了解更多详情。

【讨论】:

  • 哇,你真的迟到了,不过还是谢谢
  • @cybermind 你是对的,有时我会尝试回答一些老问题。即使对您来说为时已晚,新手也会从这些答案中受益。 ;-)
猜你喜欢
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-03
  • 2014-11-17
相关资源
最近更新 更多