小编Kha*_*CTG的帖子

SDL2 - 为什么SDL_CreateTextureFromSurface()需要渲染器*?

这是SDL_CreateTextureFromSurface函数的语法:

SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface*  surface)
Run Code Online (Sandbox Code Playgroud)

但是,我很困惑为什么我们需要传递一个渲染器*?我认为只有在绘制纹理时才需要渲染器*?

c++ sdl sdl-2

7
推荐指数
2
解决办法
2338
查看次数

为什么不尽可能使用早期绑定?

我读了一个关于多态的例子,它看起来像波纹管,其中show()是一个虚函数:

int main()
{
  Derived dv1;
  Derived dv2;
  Base* ptr;

  ptr = &dv1;
  ptr->show();

  ptr = &dv2;
  ptr->show();
}
Run Code Online (Sandbox Code Playgroud)

书中说,在这种情况下,编译器将使用late binding技术.我确实理解后期绑定和早期绑定之间的区别.但是,在这个例子中,我们(也可能是编译器)可以看到应该调用哪个函数,因为ptr指向的对象没有变化.那么为什么不在这种情况下提前绑定,因为后期绑定会导致一些开销?

c++ late-binding

7
推荐指数
1
解决办法
206
查看次数

CMake 找不到 SDL2

我想将此库添加到我的项目中。但是,它不附带预编译文件。它要求我自己构建库cmake,这是我不熟悉的。它的依赖项之一是 SDL2。所以我下载了 sdl2 开发库文件夹。在 cmake 中,我单击“配置”并选择生成器。处理几秒钟后,弹出一个窗口显示错误:Error in configuration process project files may be invalid

这就是日志屏幕显示的内容:

C 编译器标识为 MSVC 18.0.40629.0
CXX 编译器标识为 MSVC 18.0.40629.0
使用以下命令检查 C 编译器是否正常工作: Visual Studio 12 2013
使用以下命令检查 C 编译器是否正常工作: Visual Studio 12 2013 -- 有效
检测 C 编译器 ABI 信息
检测 C编译器 ABI 信息 - 完成
使用以下命令检查 CXX 编译器的工作状态: Visual Studio 12 2013
使用以下命令
检查 CXX 编译器的工作状态: Visual Studio 12 2013 -- 有效 检测 CXX 编译器 ABI 信息
检测 CXX 编译器 …

c++ cmake sdl-2

5
推荐指数
1
解决办法
1万
查看次数

我们可以在 SDL2 中使用 std::fstream 而不是 SDL_RWops 吗?

如题,在处理I/O文件方面SDL_RWops有什么优势std::fstream吗?我可以std::fstream改用因为我更熟悉它吗?

c++ fstream sdl-2

4
推荐指数
1
解决办法
984
查看次数

(int*)&var是什么意思?

是什么意思(int*) &i

  char i;
  int* p = (int*) &i;
  ...
  *p = 1234567892;
  ...
Run Code Online (Sandbox Code Playgroud)

如果是的话* &i,我会理解.但在这种情况下,这是一个" int".

c pointers

3
推荐指数
2
解决办法
1万
查看次数

将数据成员放在接口中是否可以?

最近,我了解到了composite pattern.我想在我的工作中使用它,我必须实现文件和文件夹类.我意识到子类喜欢CFile并且Cfolder必须具有相同的属性(namesize).所以我可以把属性放进去interface吗?据我所知,这样做并不好.但是,我不明白为什么我不应该这样做.或者还有其他解决方案吗? 类图

c++ interface composite

3
推荐指数
1
解决办法
3827
查看次数

标签 统计

c++ ×5

sdl-2 ×3

c ×1

cmake ×1

composite ×1

fstream ×1

interface ×1

late-binding ×1

pointers ×1

sdl ×1