Я использую .NET Framework 2.0 для программирования 2d-платформера. Я использую SFML .NET, так как он кроссплатформенный, поддерживается MONO и имеет развитый API. Моя проблема в том, что, хотя моя программа правильно компилируется и работает, я получаю сообщение об ошибке при ее закрытии.
Инструкция в "0x5ed0530e" ссылалась на память в "0x0000051c". Память не может быть «прочитана»
После тщательной отладки я заметил, что проблема возникает после инициализации класса SFML String2d.
Что не так; почему эта ошибка возникает при закрытии программы? И даже если все в порядке, можно ли вообще перестать получать ошибку, чтобы пользователи моей программы не раздражались?
с использованием системы;
использование SFML.Graphics;
использование SFML.Window;
namespace ProGUI
{
class TextBox : Sprite
{
private String2D Text;
public TextBox(RenderWindow App)
{
Image = new Image(App.Width, App.Height / 4, new Color(0, 0, 0));
Position = new Vector2(0, App.Height - App.Height / 4);
}
public void SetText(string text)
{
Text = new String2D(text);
Text.Font = new Font("Greyscale_Basic_Bold.ttf");
Text.Position = new Vector2(Position.X + 5, Position.Y + 5);
Text.Size = 12;
}
public string GetText()
{
return Text.Text;
}
public void Render(RenderWindow App)
{
App.Draw(this);
App.Draw(Text);
}
public void MainLoop(RenderWindow App, Color clr)
{
while (App.IsOpened())
{
App.Clear(clr);
App.DispatchEvents();
App.Draw(this);
App.Draw(Text);
App.Display();
}
}
}
}
Как видите, хитрого кода нет. Абсолютно чисто и просто.