Проблема перегрузки функции с кодом SDL2?Ошибка точки входа должна быть определена? - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь открыть окно, используя некоторую кодировку SDL2.Однако каждый раз, когда я пытаюсь скомпилировать и запустить код, visual studio всегда выдает мне одну и ту же ошибку.

Error: 'identifier' : function cannot be overloaded

Вот мой код:

#include <iostream>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <SDL.h>
#include <SDL_opengl.h>
#include <SDL_image.h>
#include <Windows.h>
using namespace std;

const int WIDTH = 800, HEIGHT = 600;

int WinMain(int argc, char* argv[])
{
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Window *window = SDL_CreateWindow("Hello SDL World", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, SDL_WINDOW_ALLOW_HIGHDPI);

    // Check that the window was successfully created
    if (NULL == window)
    {
        // In the case that the window could not be made...
        std::cout << "Could not create window: " << SDL_GetError() << std::endl;
        return 1;
    }

    SDL_Event windowEvent;

    while (true)
    {
        if (SDL_PollEvent(&windowEvent))
        {
            if (SDL_QUIT == windowEvent.type)
            {
                break;
            }
        }
    }

    SDL_DestroyWindow(window);
    SDL_Quit();

    return EXIT_SUCCESS;


}

Вот некоторые предупреждения, которые они дали мне на случай, если они имеют значение:

Warning #1: 'WinMain': Must be '_stdcall'

Warning #2: 'APIENTRY': macro redefinition

1 Ответ

0 голосов
/ 30 ноября 2018

Предупреждение # 1: 'WinMain': должно быть '_stdcall'

Вместо этого используйте int main(int argc, char* argv[]).Подробнее здесь .

Предупреждение # 2: 'APIENTRY': переопределение макроса

Удалить #include <Windows.h>, вам не нужноэто.

(Если вам это нужно, попробуйте разместить его над другими элементами. В качестве альтернативы попробуйте добавить #undef APIENTRY до #include <Windows.h>.)

...