これに関する情報はSDLFAQにありますが、必要なのは、出力をコンソールにリダイレクトするのではなく、これらのファイルを完全に削除することです。それでも必要ではありませんが、出力があった場合にのみプログラムでそれらを作成したいと思います。ファイルはただの迷惑であり、私はそれらを取り除きたいだけです。
どんな助けでも大歓迎です。
両方の出力を NUL にします。
mainmainSDL に付属の を使用せずに、main代わりに独自のものを提供できます。このメールによると、SDL 1.3 では、インクルードするSDL_MAIN_HANDLED前に呼び出されるマクロを定義することで、これを実現できますSDL.h。このコミットは変更されたSDL_main.hだけなので、何も再コンパイルしなくても、ローカルの SDL インストールでそのファイルにパッチを適用できる可能性があります。しかし、主な効果は をmainプリプロセッサ マクロとして定義することを回避しているように見えるため、単純に次のようにすることも可能です。
#include <SDL.h>
#undefine main
ただし、テストされていません。mainrespを提供するライブラリを使用しないようにビルドシステムをだます必要があるかもしれません WinMainSDL用。
上記のコードはマクロとしてSDL_main.h定義されていないため、プリプロセッサのトリックを行わずWinMainに独自の関数を宣言できる場合があります。WinMain繰り返しますが、1 つのライブラリを省略する必要がある場合とそうでない場合があるため、これを試してください。
SDL 1.3 では、これらのファイルについて心配する必要はありません。このコミットも含まれます。
- WinMain() から stdio リダイレクトを引き出しました。
したがって、ソースから SDL をコンパイルする場合は、別のオプション セットが提供されます。現在の HG ツリーから SDL を使用することもできますが、そうすると、実装が不安定になる可能性があります。または、その単一のコミットを SDL 1.2 に移植することもできます。これは、将来のバージョンとの互換性に悪影響が及ばないためです。