2

私はsfml2.0を使用しています。私はそこのフォーラムで質問できることを知っていますが、サンプルプロジェクトをうまくコンパイルし、外部クラスを組み込んでいるのとまったく同じシンであるため、ライブラリを間違ってリンクすることとは何の関係もないと思います。コンパイルしようとするとこれが表示されます

1>リンク:致命的なエラーLNK1104:ファイルを開けません'C:\ Users \ brr \ document \ visual studio 2012 \ Projects \ sfmlgame \ Release \ sfmlgame.exe'

私のコードは次のとおりです。

main.cpp:

#include "functions.h"
int main()
{
    functions func;
    std::cout << "Testing 123, testing 123!";
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);
    bool running = true;
    while (running)
    {
        func.window.clear();
        func.window.draw(shape);
        func.window.display();
    }
    return 0;
}

関数.h:

#pragma once
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include<SFML\Network.hpp>
#include <SFML/Window.hpp>
#include <iostream>

class functions
{
public:
    functions(void);
    ~functions(void);
    void Events();
    void Window();
    sf::RenderWindow window;
    sf::Event event;
};

関数.cpp:

#include "functions.h"
functions::functions(void)
{
}

functions::~functions(void)
{
}

void functions::Window(){
    window.setSize(sf::Vector2u(800,600));
    window.setTitle("Test");
}

void functions::Events(){
    while (window.pollEvent(event))
    {
        if (event.type == sf::Event::Closed)
            window.close();
    }
}
4

3 に答える 3

6

2つの可能性があります。

1.ディレクトリへのアクセス権がありません。C:\Users\brr\documents\visual studio 2012\Projects\sfmlgame\Releaseこの場所に新しいファイルを作成して確認できます。

2.プロセスはすでに使用されています。タスクマネージャ(start->run->taskmgr)を実行し、sfmlgame.exeが実行されているかどうかを確認します。はいの場合、プロセスを強制終了します

于 2013-03-19T06:13:04.900 に答える
2

通常、プログラム ( sfmlgame.exe) が既に開いている/実行されている場合にこのエラーが発生するため、Visual Studio はそれを新しくコンパイルされたものに置き換えることができません。既に実行している場合はプログラムを閉じてから、もう一度やり直してください。

于 2013-03-19T06:11:11.533 に答える