微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法在 C++ 中创建线程我搜索过,但没有发现任何错误当我尝试创建线程时,它返回 -1073740791

如何解决我无法在 C++ 中创建线程我搜索过,但没有发现任何错误当我尝试创建线程时,它返回 -1073740791

我真的必须制作这个线程,否则cpu会被占用太多。让我问这个问题的是,一切看起来都很好,但它返回错误 (-1073740791)。

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <SFML/Network.hpp>

#include <bitset>
#include <thread>
#include <chrono>
#include <iostream>

using namespace sf;

void playerHitFunction();

std::bitset<8> gbs0;//rightButtonAplied,leftButonAplied,isItAlrreadyHitting

CircleShape player(25.f,10),enemy(25.f,ball(6.f,32);
float playerScale = 1.f,enemyScale = 1.f,playerVeLocity = 0.f,enemyVeLocity = 0.f,ballVeLocity = 0.f; Event event;
Color playerColor(0,128,192),enemyColor(192,128),ballColor(128,192,0),windowColor(64,64,64);

    int main() {

    RenderWindow window(sf::VideoMode(800,600),"sfml works");

    goto construction0;

gameloop0:
    while (window.isopen()) {


        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed) {
                window.close();
            }
            else if (Keyboard::isKeypressed(Keyboard::Down) && !gbs0[2]) {
                std::thread playerHitingThread(&playerHitFunction);gbs0[2] = true;
            }
            else if (Keyboard::isKeypressed(Keyboard::Right) && !gbs0[0]) {
                playerVeLocity += +0.18f;
                gbs0[0] = true;
            }
            else if (!(Keyboard::isKeypressed(Keyboard::Right)) && gbs0[0]) {
                playerVeLocity += -0.18f; gbs0[0] = false;
            }
            else if (Keyboard::isKeypressed(Keyboard::Left) && !gbs0[1]){
                playerVeLocity += -0.18f; gbs0[1] = true;
            }
            else if (!(Keyboard::isKeypressed(Keyboard::Left)) && gbs0[1]) {
                playerVeLocity += +0.18f; gbs0[1] = false;
            }
        }

        goto objectEvents0;

    afterObjectEvents0:

        goto windowDraws0;
    afterWindowDraws0:
        continue;
    }

    return 0;

construction0:
    player.setFillColor(playerColor); player.setorigin(25.f,25.f); player.setPosition(400.f,0.f); player.rotate(90.f);
    enemy.setFillColor(enemyColor); enemy.setorigin(25.f,25.f); enemy.setPosition(400.f,600.f); enemy.rotate(90.f);
    ball.setFillColor(ballColor); ball.setorigin(6.f,6.f); ball.setPosition(400.f,300.f);
    goto gameloop0;

objectEvents0:
    player.setScale(playerScale,playerScale); player.setFillColor(playerColor); player.move(playerVeLocity,0.f);
    enemy.setScale(enemyScale,enemyScale); enemy.setFillColor(enemyColor); enemy.move(enemyVeLocity,0.f);
    goto afterObjectEvents0;

windowDraws0:
    window.clear(windowColor); window.draw(player); window.draw(enemy); window.draw(ball); window.display();
    goto afterWindowDraws0;
//endOfLabels0:

}

void playerHitFunction() {
    std::cout << "thread have opened";
    while (playerScale < 1.46f) {
        playerScale += 0.05f;
        std::this_thread::sleep_for(std::chrono::microseconds(25000));
    }while (playerScale > 1.04f) {
        playerScale -= 0.05f;
        std::this_thread::sleep_for(std::chrono::microseconds(25000));
    }
}

按下后的满热:

D:\yazılım\kNowledge\tests\SFML_STATIC_LINKING1\x64\Release\SFML_STATIC_LINKING1.exe(进程 12260)退出代码为 -1073740791。 按任意键关闭此窗口。 . .

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。