没有Visual Studio,无法在PC上运行发布版本

Cannot run release build on a PC without visual studio

本文关键字:布版本 运行 版本 PC Studio Visual 没有      更新时间:2023-10-16

标题几乎说明了一切。

我目前正在学习C ,并决定尝试制作游戏。我的朋友也想学习C ,但没有安装VS,试图运行它,并且它在启动时崩溃了。

当我从外部VS上运行它时,这很好,然后我将其发送给他的邮政编码,并用所有DLL和释放构建。不确定为什么会发生这种情况,有人有任何想法吗?

这是代码,它写得不好,可读性很差(对不起)

#include "stdafx.h"
#include <SFML/Graphics.hpp>
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
int main()
{
    HWND hWnd = GetConsoleWindow();
    ShowWindow(hWnd, SW_HIDE);
    bool gameover(1);
    sf::RenderWindow window(sf::VideoMode(240, 500), "Hangman but not very good.");
    sf::Text text;
    sf::Font font;
    sf::Sprite sprite;
    sf::Texture texture;
    texture.loadFromFile("0.png");
    sprite.setTexture(texture);
    char uInput[11] = {0};
    char displayed[11] = {0};
    bool setup = false;
    int charCount(0);
    int iii(0);
    bool correct(0);
    long long wrongGuesses(0);
    int wordlength(0);
    long long gameoverCounter(0);
    char currentGuess = 0;
    bool bypass = true;
    char pngC = '1';
    char IOarray[] = "x.png";
    bool firstSetup = true;
    int correctCounter = 0;
    font.loadFromFile("Xefus.ttf");
    text.setColor(sf::Color::Yellow);
    text.setCharacterSize(24);
    text.setFont(font);
    text.setString("Please enter the word to guess, press enter to stop");
    while(window.isOpen())
    {
        sf::Event event;
        while(gameover)
        {
            while(window.pollEvent(event))
            {
                if(event.type == sf::Event::Closed)
                    window.close();
                if(event.type == sf::Event::TextEntered)
                {
                    bypass = true;
                    if(iii < 10 && !setup)
                        if(event.text.unicode < 128 && event.text.unicode > 96)
                        {
                            uInput[iii] = static_cast<char>(event.text.unicode);
                            ++iii;
                            ++wordlength;
                        }
                    {
                        for(int i = 0; i < wordlength; ++i)
                            if(event.text.unicode == uInput[i] && !firstSetup)
                            {
                                displayed[i] = uInput[i];
                                bypass = false;
                                ++correctCounter;
                            }
                            else if(bypass = true)
                                ++wrongGuesses;
                    }
                }
                if(sf::Keyboard::isKeyPressed(sf::Keyboard::Return))
                    setup = true;
                if(sf::Keyboard::isKeyPressed(sf::Keyboard::BackSpace))
                {
                    uInput[iii] = 0;
                    iii -= 1;
                }
            }
            if(!setup)
            {
                text.setString(uInput);
                displayed[wordlength - 1] = ('*');
                setup = false;
            }
            else
            {
                text.setString(displayed);
                bypass = false;
                if(firstSetup)
                {
                    firstSetup = false;
                    gameoverCounter = 0;
                    wrongGuesses = 0;
                    correctCounter = 0;
                }
                if(wrongGuesses >= wordlength)
                {
                    ++gameoverCounter;
                    wrongGuesses = 0;
                    IOarray[0] = static_cast<char>(gameoverCounter + 48);
                    texture.loadFromFile(IOarray);
                }
                if(gameoverCounter >= 9)
                {
                    return 0;
                    window.clear();
                    window.draw(sprite);
                    window.draw(text);
                    window.display();
                }
                if(correctCounter >= wordlength)
                {
                    return 0;
                    window.clear();
                    window.draw(sprite);
                    window.draw(text);
                    window.display();
                }
                wrongGuesses = 0;
            }
            window.clear();
            window.draw(sprite);
            window.draw(text);
            window.display();
        }
    }
}

vikash是正确的,这是缺少运行时库的情况。您需要的是在目标计算机中安装正确的重新分配软件包。

Google并下载适合您的应用程序的适当版本:

" 可视录音室的视觉C 可重新分配 yyyy "其中 yyyy 是您的Visual Studio年份。

下载后,将其安装在目标计算机上,然后运行您的应用程序。

安德鲁

这种类型的问题的原因之一是缺少DLL。因此,请确保系统上有所有依赖的DLL。

复制因库时我们犯的一个常见错误是,我们忘记复制运行任何C 应用程序所需的C 运行时间DLL。该库是使用Visual Studio安装的,这就是为什么该应用程序在您的系统上运行但不在朋友的过程中。

C 运行时间库是:MSVCR,MSVCRT,MSVCP

您也可以使用依赖关系Walker软件检查其他任何缺失的依赖项。

希望它有助于