При использовании SFML я получаю исключение памяти или выход за границы, в чем проблема? - PullRequest
0 голосов
/ 19 декабря 2018

Я учусь связывать SFML, чтобы я мог использовать инструменты окна.Моя конечная цель - написать какую-нибудь игру в шахматы или астероиды, чтобы попрактиковаться в программировании.Я использовал учебник по SFML, чтобы выровнять все ссылки, и я делаю это динамически с файлами .dll.Все в этом коде компилируется в Visual Studio 2017, но когда появляется консоль, я получаю сообщение об ошибке: «Приложение не удалось запустить правильно (0xc000007b)».

Я предполагаю, что это какая-то ошибка памяти?Мне потребовалось некоторое время, чтобы изучить связь, и теперь я застрял.Спасибо за любую помощь!

PS.Предположим, это просто окно с зеленым кругом внутри.

#include "pch.h"
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <time.h>

using namespace sf;

int main()
{
    RenderWindow window(VideoMode(200,200), "My First Window");
    CircleShape shape(100.f);
    shape.setFillColor(Color::Green);

    while (window.isOpen())
    {
      Event event;
    while (window.pollEvent(event))
    {
      if (event.type == Event::Closed)
      {
        window.close();
      }
      window.clear();
      window.draw(shape);
      window.display();
    }
  }
  return EXIT_SUCCESS;
  }

1 Ответ

0 голосов
/ 19 декабря 2018

Ответ уже упоминается в комментариях, но я приведу фактический ответ здесь, чтобы он был более заметным.

Код ошибки 0xc000007b означает, что необходимые файлы .dll не находятся вPATH или локальный каталог.Чтобы решить эту проблему, поместите необходимые .dll s в каталог в системе PATH или в каталог исполняемых файлов.

Кроме того, необходимо убедиться, что вы не смешиваете 32-битные и64-битные библиотеки, они несовместимы друг с другом.

Спасибо drescherjm .

...