C++ SDL#u GetWindowPosition()不';t更新int指针
我正试图按照youtube上的教程学习SDL。但是当我尝试使用SDL_GetWindowPosition()和SDL_GetWindowSize()时,它似乎没有更新int* 这是我的密码:C++ SDL#u GetWindowPosition()不';t更新int指针,c++,sdl,C++,Sdl,我正试图按照youtube上的教程学习SDL。但是当我尝试使用SDL_GetWindowPosition()和SDL_GetWindowSize()时,它似乎没有更新int* 这是我的密码: #include <iostream> #include "include/SDL2/SDL.h" using namespace std; void CreateWindow(SDL_Window *win){ win = SDL_CreateWindow("Title",
#include <iostream>
#include "include/SDL2/SDL.h"
using namespace std;
void CreateWindow(SDL_Window *win){
win = SDL_CreateWindow("Title",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
800, 600,
SDL_WINDOW_RESIZABLE);
if (win == nullptr)
cout<<"Could not create window.\n"<<SDL_GetError()<<'\n';
}
void QuitWindow(SDL_Window *win){
// SDL_Delay(3000); // 3 seconds
SDL_DestroyWindow(win);
SDL_Quit();
}
int main(int argc, char* argv[]) {
// initialize window
SDL_Init( SDL_INIT_EVERYTHING );
SDL_Window *win = nullptr;
CreateWindow(win);
// main loop
SDL_Event event;
bool run = true;
while (run){
int x, y, w, h;
while (SDL_PollEvent(&event)){
if (event.type == SDL_QUIT){
run = false;
QuitWindow(win);
break;
}
}
SDL_GetWindowPosition(win, &x, &y);
SDL_GetWindowSize(win, &w, &h);
cout<<x<<','<<y<<" ; "<<w<<','<<h<<endl;
}
return 0;
}
#包括
#包括“include/SDL2/SDL.h”
使用名称空间std;
void CreateWindow(SDL_Window*win){
win=SDL_CreateWindow(“标题”,
SDL_窗口位置未定义,
SDL_窗口位置未定义,
800, 600,
SDL_窗口(可调整大小);
如果(win==nullptr)
coutPass指针通过引用:SDL_Window*&win
。现在CreateWindow
中的指针是按值传递的,因此您修改此指针的本地副本,指针的原始值不受影响。我将CreateWindow(win);更改为CreateWindow(*&win);但退出Window(win)后得到了类似的结果;工作正常。当我按“X”时,窗口将关闭。在函数定义中进行此修改,而不是在调用函数时。void CreateWindow(SDL_window*&win)
通过引用传递指针:SDL\u Window*&win
。现在CreateWindow
中的指针是通过值传递的,因此您修改此指针的本地副本,指针的原始值不受影响。我将CreateWindow(win);更改为CreateWindow(*&win);但退出Window(win)后得到了类似的结果;工作正常。当我按“X”时,窗口将关闭。在函数定义中进行此修改,而不是在调用函数时。void CreateWindow(SDL\u window*&win)