Код инcтрументирования объектов cookie стека обнаружил переполнение буфера, связанное со стеком
Вот решил сделать крестики нолики на c++ с помощью библиотеки SFML. Когда запускал на конфигурации Debug все было нормально, но когда я поставил на Release, почему то Visual Studio 2019 начало жаловаться "Необработанное исключение по адресу 0x00B8264F в sfml_project.exe: Код инcтрументирования объектов cookie стека обнаружил переполнение буфера, связанное со стеком..".
Повторюсь что на Debug все было нормально.
Вот код
#include <SFML/Graphics.hpp>
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace sf;
using namespace std;
void Fields_button(RenderWindow& window) {
float MouseX = Mouse::getPosition(window).x;
float MouseY = Mouse::getPosition(window).y;
//проверяет в какую ячейку поля нажал игрок
//up
if (((382.f < MouseX and MouseX < 550.f) and (87.f < MouseY and MouseY < 243.f))) {
cout << 1 << endl;
}
if (((561.f < MouseX and MouseX < 747.f) and (87.f < MouseY and MouseY < 243.f))) {
cout << 2 << endl;
}
if (((764.f < MouseX and MouseX < 927.f) and (87.f < MouseY and MouseY < 243.f))) {
cout << 3 << endl;
}
//center
if (((382.f < MouseX and MouseX < 550.f) and (256.f < MouseY and MouseY < 442.f))) {
cout << 4 << endl;
}
if (((561.f < MouseX and MouseX < 747.f) and (256.f < MouseY and MouseY < 442.f))) {
cout << 5 << endl;
}
if (((764.f < MouseX and MouseX < 927.f) and (256.f < MouseY and MouseY < 442.f))) {
cout << 6 << endl;
}
//down
if (((382.f < MouseX and MouseX < 550.f) and (457.f < MouseY and MouseY < 629.f))) {
cout << 7 << endl;
}
if (((561.f < MouseX and MouseX < 747.f) and (457.f < MouseY and MouseY < 629.f))) {
cout << 8 << endl;
}
if (((764.f < MouseX and MouseX < 927.f) and (457.f < MouseY and MouseY < 629.f))) {
cout << 9 << endl;
}
}
int main()
{
setlocale(LC_ALL, "Russian");
sf::RenderWindow window(sf::VideoMode(1280, 720), "Krestiki_noliki", Style::Close);
//Buttons
//Play
Image play_image;
play_image.loadFromFile("Textures fonts/PLAY.png"); //upload image
play_image.createMaskFromColor(Color(255, 255, 255, 0)); //transparent
Texture play_txr; //upload
play_txr.loadFromImage(play_image);
Sprite play(play_txr);
play.setOrigin(465, 229); //object center
play.setPosition(540, 150); //position
Vector2f play_size(465, 229); //size
play.setScale( //size
play_size.x / play.getLocalBounds().width,
play_size.y / play.getLocalBounds().height
);
//Play clicking check
RectangleShape play_check(Vector2f(290, 95));
play_check.setFillColor(Color(252, 3, 3, 0));
play_check.setPosition(500, 156);
//Field
bool clickFields = false;
Image Fields_image;
Fields_image.loadFromFile("Textures fonts/Fields.png"); //upload image
Fields_image.createMaskFromColor(Color(255, 255, 255, 0)); //transparent
Texture Fields_txr; //upload
Fields_txr.loadFromImage(Fields_image);
Sprite Fields(Fields_txr);
Fields.setPosition(290, 0); //position
Fields.setColor(Color(255, 255, 255, 0)); //color and transparent
//Back
Image Back_image;
Back_image.loadFromFile("Textures fonts/back.png"); //upload image
Back_image.createMaskFromColor(Color(255, 255, 255, 0)); //transparent
Texture Back_txr; //upload
Back_txr.loadFromImage(Back_image);
Sprite Back(Back_txr);
Back.setColor(Color(255, 255, 255, 0));
Back.setPosition(-88, -20); //position
Vector2f Back_size(320, 180); //size
Back.setScale( //size
Back_size.x / Back.getLocalBounds().width,
Back_size.y / Back.getLocalBounds().height
);
//Back check
RectangleShape Back_check(Vector2f(74, 89));
Back_check.setFillColor(Color(200, 0, 255, 0));
Back_check.setPosition(30, 30);
//Nolik
Image Nolik_image;
Nolik_image.loadFromFile("Textures fonts/O.png"); //upload image
Nolik_image.createMaskFromColor(Color(255, 255, 255, 0)); //transparent
Texture Nolik_txr; //upload
Nolik_txr.loadFromImage(Nolik_image);
Sprite Nolik(Nolik_txr);
Nolik.setColor(Color(255, 255, 255, 150));
Nolik.setOrigin(190.f/2, 181.f/2); //center object
Nolik.setPosition(310.f, 80.f); //position
Vector2f Nolik_size(343.f, 195.f); //size
Nolik.setScale( //size
Nolik_size.x / Nolik.getLocalBounds().width,
Nolik_size.y / Nolik.getLocalBounds().height
);
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
//play's check clicking
if (event.key.code == Mouse::Left) {
if (play_check.getGlobalBounds().contains(Mouse::getPosition(window).x, Mouse::getPosition(window).y) and clickFields == false) {
printf("PLAY IS CLICKED");
printf("\n");
clickFields = true;
play.setColor(Color(255, 255, 255, 0));
Fields.setColor(Color(255, 255, 255, 255));
Back.setColor(Color(255, 255, 255, 255));
; }
}
//back's check clicking
if (event.key.code == Mouse::Left) {
if (Back_check.getGlobalBounds().contains(Mouse::getPosition(window).x, Mouse::getPosition(window).y) and clickFields == true) {
printf("BACK IS CLICKED");
printf("\n");
clickFields = false;
play.setColor(Color(255, 255, 255, 255));
Fields.setColor(Color(255, 255, 255, 0));
Back.setColor(Color(255, 255, 255, 0));
}
}
if ((event.key.code == Mouse::Left) and (clickFields == true)) {
Fields_button(window);
}
}
window.clear(Color(13, 13, 13)); //wallpaper color
//show
window.draw(play);
window.draw(Fields);
window.draw(Back);
window.draw(Nolik);
//
window.display();
}
return 0;
}
Пожалуйста скажите в чем проблема.