6

我想知道如何将 SDL_Surface* 与 shared_ptr 连接起来?
我需要SDL_FreeSurface(SDL_Surface*)在删除之前打电话SDL_Surface。如何在 shared_ptr 中“修改删除过程”?

4

1 回答 1

13

只需将 SDL_FreeSurface 传递给构造函数:

std::shared_ptr<SDL_Surface> shared_surf(SDL_LoadBMP("foo.bmp"), SDL_FreeSurface);

请确保不要使用SDL_SetVideoModeor返回的指针执行此操作SDL_GetVideoSurface

于 2012-04-03T21:47:44.163 回答