-
Visual C++에서 SDL2 라이브러리 사용하기프로그래밍/윈도우즈 2021. 3. 28. 12:07728x90
SDL 사이트(링크)에서 SDL2 헤더와 라이브러리를 다운로드 합니다. Visual C++을 사용할 것이기 때문에 VC용으로 다운로드 합니다.
Visual C++을 실행하여 프로젝트를 생성합니다(Visual Studio 2019를 사용하였습니다).
Windows Desktop Wizard 용 프로젝트를 생성합니다(Blank Solution이나 Consol App를 선택하셔도 되지만 설명은 Windows Desktop Wizard 용 프로젝트로 하겠습니다).
프로젝트 이름을 설정합니다.
Console Application을 선택하고 프로젝트를 생성을 마무리 합니다.
다운로드 받은 SDL2 헤더와 라이브러리를 이 프로젝트에서 사용할 수 있도록 설정합니다. 먼저 저는 다음과 같이 프로젝트 폴더 안에 위치 시켰습니다.
그리고, 프로젝트 환경설정에서 다음과 같이 설정해줍니다.
- C/C++ > General > Additional Include Directories: $(SolutionDir)\3rdparty\SDL2-2.0.14\include
- Linker > General > Additional Library Directories: $(SolutionDir)\3rdparty\SDL2-2.0.14\lib\x64
- Linker > Input > Additional Dependencies: SDL2.lib;SDL2main.lib 추가 (라이브러리는 전처리문으로도 추가 할 수 도 있기에 생략 하셔도 됩니다.)
코드를 수정합니다. main 함수가 있는 소스 코드 파일을 열고 다음과 같이 코딩합니다(main 함수 대신 SDL_main 함수를 사용합니다).
640x480 크기의 윈도우 창을 하나 만들고 배경을 흰색으로 칠한 다음 위에 빨간색 네모 박스를 그려넣는 간단한 코드 입니다.
#include <stdio.h> #include "SDL.h" #pragma comment(lib, "SDL2main.lib") #pragma comment(lib, "SDL2.lib") SDL_Window* window; SDL_Renderer* renderer; int SDL_main(int argc, char* argv[]) { printf("Start\n"); // Initialize SDL if (SDL_Init(SDL_INIT_VIDEO) < 0) { printf("Could not initialize SDL! (%s)\n", SDL_GetError()); return -1; } // Create window window = SDL_CreateWindow("", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL); if (window == NULL) { printf("Could not create window! (%s)\n", SDL_GetError()); return -1; } // Create renderer renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED|SDL_RENDERER_PRESENTVSYNC|SDL_RENDERER_TARGETTEXTURE); if (renderer == NULL) { printf("Could not create renderer! (%s)\n", SDL_GetError()); return -1; } // Clear renderer (white) SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE); SDL_RenderClear(renderer); // Draw rect (red) SDL_Rect r = {50, 50, 100, 100}; SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE); SDL_RenderDrawRect(renderer, &r); // Update screen SDL_RenderPresent(renderer); SDL_Event event; int done = 0; while (!done) { SDL_PollEvent(&event); if (event.type == SDL_QUIT) { done = 1; } } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); printf("End\n"); return 0; }
그리고 컴파일 후 실행하시면 다음과 같이 실행될 것입니다.
(실행할 때 SDL2.dll이 필요한데, 다운로드 받은 라이브러리의 lib 폴더의 x86과 x64 폴더 안에 dll 파일이 있습니다.)
앞에서 프로젝트를 Console Application으로 만들었기 때문에 콘솔 창과 함께 실행됩니다. 디버깅 시에는 디버깅 메시지를 볼 수 있어 편하지만 배포를 할 때는 없애야 겠지요.
프로젝트 환경설정에서 다음과 같이 설정합니다.
- Linker > System > SubSystem: Windows (/SUBSYSTEM:WINDOWS)
다음에는 MFC와 SDL을 함께 사용하는 방법을 알아보겠습니다.
728x90'프로그래밍 > 윈도우즈' 카테고리의 다른 글
Visual C++에서 SDL2 라이브러리 사용하기2 (0) 2021.03.28 Windows용 RTSP 서버 소스 (0) 2021.03.23 Windows용 OpenXLSX 라이브러리 컴파일하기 (0) 2021.03.20 Windows에서 USB 시리얼 포트 자동 인식하기 (1) 2013.03.13