參考解決方案地址:http://www.gamedev.net/community/forums/topic.asp?topic_id=371770
下面說下解決辦法。
SDL源碼src\main\win32目錄下有個(gè)SDL_win32_main.c這個(gè)文件,里面處理了輸出流的重定向。有這么幾句:
#ifndef NO_STDIO_REDIRECT
else {
redirect_output();
}
#endif可以看到NO_STDIO_REDIRECT這么一個(gè)條件,因?yàn)檫@是在編譯過程中選擇的,而SDL代碼里并沒有關(guān)于NO_STDIO_REDIRECT的定義,如果直接通過lib鏈接的話,肯定是會(huì)redirect的。所以我們的做法就是在compile時(shí)加入define選項(xiàng)重新編譯這段源碼,以后如果想要重定向時(shí),去掉define選項(xiàng)即可。參考上面網(wǎng)站的做法(有所不同,他的辦法我沒有成功):
1、將SDL_win32_main.c加入項(xiàng)目中;
2、去掉鏈接庫選項(xiàng)-lSDLmain;
3、在編譯SDL_win32_main.o的時(shí)候加入-DNO_STDIO_REDIRECT選項(xiàng)(或者在SDL_win32_main.c中加入#define NO_STDIO_REDIRECT一句)。
這樣就一切OK了,看吧。


