1

SDL FAQ 中有一些关于此的信息,但我需要的是完全消除这些文件,而不是将输出重定向到控制台。我希望程序仅在有任何输出时才创建它们,尽管这不是必需的。这些文件只是一个麻烦,我只想摆脱它们。

任何帮助是极大的赞赏。

4

2 回答 2

0

将两者的输出定向到 NUL。

于 2013-03-22T06:46:58.237 回答
0

如何使用自己的main

您可以避免使用mainSDL 附带的,main而是提供您自己的。根据此邮件,您将能够在 SDL 1.3 中通过定义一个在 includeSDL_MAIN_HANDLED之前调用的宏来完成此操作SDL.h。仅此更改的提交SDL_main.h,因此您可以在本地 SDL 安装中修补该文件,而无需重新编译任何内容。但由于主要影响似乎是避免定义main为预处理器宏,因此可能简单地这样做:

#include <SDL.h>
#undefine main

不过,未经测试。您可能不得不欺骗您的构建系统不使用提供main相应的库。WinMain对于 SDL。

看到SDL_main.h上面的代码没有定义WinMain为宏,您可能只需声明自己的WinMain函数而无需执行任何预处理器技巧。同样,您可能需要也可能不需要省略一个库,所以试试这个。

1.3 中的事态

请注意,在 SDL 1.3 中,您不必再担心这些文件:它还将包括此提交,其中包括

  • 从 WinMain() 中提取 stdio 重定向

因此,如果您愿意从源代码编译 SDL,这为您提供了另一组选项:您可以从当前的 HG 树开始使用 SDL,尽管这样做可能会使您面临可能不稳定的实现。或者,您可以将该单个提交移植回 SDL 1.2,因为与未来版本的兼容性不会因此受到任何不良影响。

于 2013-03-22T07:55:02.033 回答