SDL2와 함께 SDL2_ttf를 사용하고 있습니다 (Visual Studio 2015에서). 다음 코드를 실행할 때SDL 및 SDL2와 함께 SDL_ttf를 사용할 때 C++ 액세스 위반이 발생했습니다.
#include "SDL.h"
#include "SDL_ttf.h"
int main(int argc, char* args[]) {
SDL_Init(SDL_INIT_EVERYTHING);
TTF_Init();
SDL_Window* window;
SDL_Renderer* renderer;
SDL_CreateWindowAndRenderer(1600, 900, SDL_WINDOW_OPENGL, &window, &renderer);
TTF_Font* font = TTF_OpenFont("comic.ttf", 12);
SDL_Color color = { 0, 0, 0, 255 };
SDL_Surface* textSurface = TTF_RenderText_Solid(font, "asdf", color);
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, textSurface);
TTF_Quit();
SDL_Quit();
return 0;
}
"SDL.dll 누락"런타임 오류가 발생했습니다. SDL.dll, SDL2.dll, libfreetype-6.dll, SDL_ttf.dll, zlib1.dll 및 다른 라이브러리를 system32 폴더에 넣어 런타임 오류를 해결했지만 즉시 다른 오류가 발생했습니다. "처리되지 않은 예외는 다음과 같습니다. 0x000000006C812E39 (SDL2.dll) MCP2016.exe : 0xC0000005 : 액세스 위반 읽기 위치 0x000000010000006A. " 나는 나에게 이런 얘기를 비주얼 스튜디오 대화 상자에서 "휴식"하기로 결정했을 때
, 그것은 SDL_ttf 및 SDL2 같은 액세스 위반이 발생할 수 있습니다 제안 내가 old forum post 건너 온 라인
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, textSurface);
지적 이것은 완전히 호환되지 않기 때문입니다. SDL.dll에 대해 불만을 제기 한 이래로 문제가있는 것으로 생각합니다. DLL을 SDL2 헤더 파일로 다시 컴파일하는 것이 좋았지 만, Windows와 C++이 잘 맞지 않아서 필자의 능력을 뛰어 넘는 것이 두렵다.
저는 약 8 시간 동안이 작업을 해왔으며이 문제를 해결하기위한 아이디어가 부족합니다. 누구든지 이것에 대해 어떤 생각을 가지고 있습니까?
SDL_ttf 2.0을 사용해 보셨습니까? https://www.libsdl.org/projects/SDL_ttf/ – user3684240
실수로 SDL_ttf 1.0 버전을 사용 한 것으로 보입니다. 나는 그것이 SDF_ttf 2.0이라고 생각했다 : $ 고마워! –