在 Visual Studio 2022 的 C++ 项目中使用 TGUI 和 SFML 时出现问题

问题描述 投票:0回答:1

我正在尝试将 SFML 和 TGUI 库集成到我的 C++ 项目中。虽然 SFML 工作得很好,但我在使用 TGUI 时遇到了问题。

我仔细按照 TGUI 网站上的安装说明进行操作,添加必要的目录并在 Visual Studio 中设置适当的属性。但是,运行以下代码时出现错误:

#include <SFML/Graphics.hpp>
#include <TGUI/TGUI.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "TGUI Example");
    tgui::Gui gui(window);

    // Other GUI setup code here

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            gui.handleEvent(event);
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        gui.draw();
        window.display();
    }

    return 0;
}

我已经仔细检查了 TGUI 库是否正确包含,但我不知道可能会出现什么问题。

有人有什么建议或解决方案吗?

我几乎尝试了一切。仔细检查我是否粘贴了正确的目录(我根据 TGUI 安装指南进行了操作),并且 Visual Studio 项目包含属性(也是正确的),但此错误似乎并没有消失。

编辑:我检查过,错误消息来自 Visual Studio 中的 IntelliSense。确切的错误消息是:

Severity: Code  
Description: Namespace "tgui" does not have a member "Gui".  
Project: PhyEng  
File: C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp  
Line: 7

构建日志最后有以下内容:

The build started at 17:37...
1>------ Build started: Project: PhyEng, Configuration: Debug x64 ------
1>Main.cpp
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(9,11): error C2039: 'Gui' is not a member of 'tgui'.
1>    C:\Users\Admin\Desktop\RandProj\PhyEng\include-tgui\TGUI\Widgets\VerticalLayout.hpp(32,30):
1>    See declaration of 'tgui'
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(9,11): error C2065: 'Gui': undeclared identifier
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(9,15): error C2146: syntax error: missing ';' before identifier 'gui'
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(9,15): error C3861: 'gui': identifier not found.
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(15,5): error C2065: 'gui': undeclared identifier
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(20,5): error C2065: 'gui': undeclared identifier
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(34,13): error C2065: 'gui': undeclared identifier
1>C:\Users\Admin\Desktop\RandProj\PhyEng\PhyEng\Main.cpp(38,9): error C2065: 'gui': undeclared identifier
1>The build of the project 'PhyEng.vcxproj' is complete -- ERROR.

问题已解决:解决方案:

#include <TGUI/Backend/SFML-Graphics.hpp>

c++ visual-studio user-interface sfml
1个回答
0
投票

来自 TGUI 文档:https://tgui.eu/documentation/0.9/classtgui_1_1GuiSFML.html 和示例 SFML 程序 https://tgui.eu/tutorials/latest-stable/backend-sfml-graphics/您似乎缺少一个包含内容。

请添加:

#include <TGUI/Backend/SFML-Graphics.hpp>

您的包含内容。

最小的 SFML 程序如下:

#include <TGUI/TGUI.hpp>
#include <TGUI/Backend/SFML-Graphics.hpp>

int main()
{
    sf::RenderWindow window{{800, 600}, "TGUI example - SFML_GRAPHICS backend"};
    tgui::Gui gui{window};
    gui.mainLoop(); // See below for how to use your own main loop
}
© www.soinside.com 2019 - 2024. All rights reserved.