C 標準庫無圖形能力,SDL(Simple DirectMedia Layer)是輕量、跨平台、開源的多媒體庫,提供視頻、音頻、輸入事件、線程等子系統,適合入門遊戲開發、多媒體應用。相比 DirectX/OpenGL,API 簡潔,代碼量少 5-6 倍。
https://www.libsdl.org/release/SDL-devel-1.2.14-VC8.ziphttps://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.10-VC.ziphttps://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-devel-1.2.11-VC.zip每個包含 include/(頭文件)與 lib/(.lib/.dll)。
include/SDL/ 複製到 VC/include/SDL/。lib/*.lib → VC/lib/;*.dll → C:\Windows\System32/。缺點:污染系統目錄,可能衝突其他專案。
SDL/,下設 include/、lib/、dll/。$(ProjectDir)SDL/include$(ProjectDir)SDL/libSDL.lib;SDLmain.lib;SDL_image.lib;SDL_mixer.libMulti-threaded DLL (/MD) 或一致的模式。dll/ 加入系統 PATH 或複製到輸出目錄。#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1) return -1;
SDL_Surface* screen = SDL_SetVideoMode(600, 600, 0,
SDL_HWSURFACE | SDL_HWPALETTE | SDL_DOUBLEBUF);
if (!screen) { SDL_Quit(); return -1; }
SDL_Delay(3000);
SDL_FreeSurface(screen);
SDL_Quit();
return 0;
}
注意:主函數必須為 int main(int argc, char* argv[]),頭文件引用 <SDL/SDL.h>。
SDL.dll 運行時報錯,檢查 PATH 或輸出目錄。