WindowsにC++開発環境を構築する(VSCode + MSVC)の環境でSDL2を使ってみたメモ
先に上の記事を見ることをお勧めします。
# 準備
SDL公式サイトからSDL2をダウンロードします。
workspaceFolderに「SDL2-○.○.○○」フォルダを置きます。また、workspaceFolderにSDL2.dllを配置しておきます。
Ctrl + Shift + P からc_cpp_properties.jsonを生成します。
初期状態で以下のようになっていると思います。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17134.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
以下のようにしてincludePathにSDL2を追加します。
"includePath": [
"${workspaceFolder}\\SDL2-2.0.12\\include",
"${workspaceFolder}/**"
],
また、tasks.jsonのargsを以下のように編集します。
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"/I",
"${workspaceFolder}\\SDL2-2.0.12\\include",
"/link",
"/LIBPATH:${workspaceFolder}\\SDL2-2.0.12\\lib\\x86",
"SDL2.lib","SDL2main.lib","SDL2test.lib",
"/SUBSYSTEM:CONSOLE"
]
# コーディング(ウィンドウ表示)
以下のコードをコピペしてcppファイルを作成します。
#include <cstdio>
#include <cstdlib>
#include <SDL.h>
#pragma comment(lib, "Shell32.lib")
int main(int argc, char* argv[])
{
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
fprintf(stderr, "SDL_Init error: %s\n", SDL_GetError());
return EXIT_FAILURE;
}
atexit(SDL_Quit);
auto window = SDL_CreateWindow("Hello World!", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
if (!window) {
fprintf(stderr, "SDL_CreateWindow error: %s\n", SDL_GetError());
return EXIT_FAILURE;
}
auto renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (!renderer) {
fprintf(stderr, "SDL_CreateRenderer error: %s\n", SDL_GetError());
SDL_DestroyWindow(window);
return EXIT_FAILURE;
}
auto quit = false;
while (!quit) {
SDL_Event e;
while (SDL_PollEvent(&e)) {
if (e.type == SDL_QUIT) {
quit = true;
break;
}
}
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
return EXIT_SUCCESS;
}
# 実行
Ctrl + Shit + B でビルドします。
./ファイル名.exe
で実行します。
以下のようにウィンドウが表示されれば成功です。