2015-01-31 2 views
3

Windows 64 비트에서 정적 라이브러리로 빌드 된 SDL2를 사용하고 있습니다. 그리고 SDL2는 stdout과 stderr이 콘솔에 도달하는 것을 멈 춥니 다.Windows의 SDL2가 stdout과 stderr를 훔칩니다.

지금은 FAQ을 읽었습니다. 그러나 :

  • NO_STDIO_REDIRECT 기호는 SDL1.2위한 것이고, SDL2 사용되지 않습니다.
  • freopen() 트릭이 어떤 주문형에서도 작동하지 않습니다.
  • 내 앱을 콘솔 앱으로 연결합니다.
  • SDL2main 편의 라이브러리와 연결되지 않습니다.

나는 2013 년 제품군의 Visual C를 명령 줄에서 사용합니다.

LINK.EXE /OUT:giver.exe/SUBSYSTEM : CONSOLE/NOLOGO의 C : /Users/bram/Desktop/src/opende/lib/Release/ode.lib C : 이 내 링커 invokation입니다/사용자/bram/데스크탑/src/SDL2-2.0.3/VisualC/S DL/x64/Debug/SDL2.lib winmm.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32. LIB shell32.lib 해당 Ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib version.lib imm32.lib OpenGL32.lib sdlmain.obj gl3w.obj libpi.lib libbase.lib

그러나, 어떤 표준 출력하지 나를 위해. SDL2가 내 출력을 훔치는 것을 어떻게 막을 수 있습니까?

+0

답변을 찾으셨습니까? –

+1

나는 명령 행 인터페이스를 포기하고 항복했다. 이제 저는 비주얼 스튜디오 프로젝트를 사용합니다. 나는 무엇이 잘못되었는지를 결코 알지 못했다. – Bram

답변

0

간단한 SDL2 프로그램을 만들고 libsdl.org에서 찾을 수있는 default x64 SDL2.0.3 VC .lib/.dll's을 사용하고 Win7 x64에서 VS2013으로 컴파일하고 printf/SDL_Log를 사용하여 콘솔 출력을 얻을 수있었습니다. 잘하면이 도움이됩니다. 여기

프로그램입니다 :

#include <SDL2/SDL.h> 
#include <stdio.h> 

int main(int argc, char** argv) 
{ 
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Window* window = SDL_CreateWindow("SDL2 Test", 
             SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 
             800, 600, SDL_WINDOW_SHOWN); 

    SDL_Surface* screenSurface = SDL_GetWindowSurface(window); 

    SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0x0c, 0xd6, 0xe8)); 
    SDL_UpdateWindowSurface(window); 

    printf("printf: Hello World\n"); 
    SDL_Log("SDL_Log: Hello World\n"); 

    SDL_Delay(2500); 

    SDL_DestroyWindow(window); 
    SDL_Quit(); 
    return 0; 
} 

여기에 내가 컴파일 방법 (당신이 적절하게/링크 디렉토리를 포함 변경) :

cl hello_SDL2.cpp /MD /I C:\vs_sdl\include /link C:\vs_sdl\lib\x64\SDL2.lib C:\vs_sdl\lib\x64\SDL2main.lib /SUBSYSTEM:CONSOLE 

프로그램은 다음 몇 초 동안 창을 제공하고 출력 콘솔로 이동 :

printf: Hello World 
SDL_Log: Hello World 
관련 문제