小编Wol*_*Doo的帖子

输出窗口显示抛出的异常

因此,我正在研究异常处理,并使用 try-catch 来解决将字符串转换为整数的问题。该项目运行良好,但如果我查看输出窗口,会显示多条类似这样的消息:

Exception thrown at 0x00007FFB7ACE3B29 in CPP-eindopdracht.exe: Microsoft C++ exception: std::invalid_argument at memory location 0x0000006DF9B3ECC0.

这是否意味着我的异常处理无法正常工作,或者这总是 VS2019 的输出窗口向您显示的内容?

谢谢。

编辑:

这是调试时生成异常抛出消息的位置:

bool Interpreter::tryConvertToInt(std::string convertible, int& value)
{
    try
    {
        value = std::stoi(convertible); // Also accepts "123abc" as a valid conversion. No problem for now but keep in mind.
        return true;
    }
    catch (...)
    {
        //std::cout << "Conversion from " << convertible << " to integer is not possible..." << std::endl;
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,我正在处理异常,所以我不明白为什么该消息显示在输出选项卡中。

c++ exception visual-studio output

4
推荐指数
1
解决办法
2112
查看次数

为什么使用OpenGL函数需要Windows.h?

我正在开发一个使用 OpenGL 制作简单游戏的应用程序。刚开始学习OpenGL。为什么在下面的代码片段中我需要<Windows.h>识别GLuint vao?删除包含会导致错误。

#include <Windows.h>
#include <gl/GL.h>

int main() {
    GLuint vao;
}
Run Code Online (Sandbox Code Playgroud)

当我删除 include 时,出现 868 错误<Windows.h>'APIENTRY': this use of 'void' is not valid诸如、int APIENTRY: redefinition、之类的错误int WINGDIAPI: redefinition,老实说还有很多。

我正在 Windows 上进行开发,但这自动意味着如果没有一些外部工具包/库(如 GLEW、GLUT 等),跨平台是不可能的?我知道强烈建议使用它们,但由于某些原因,我无法使用它们。

另外,这是否意味着我需要包含<Windows.h>在使用 OpenGL 函数的每个文件中?我认为这并不是很好的做法。

windows opengl winapi cross-platform

1
推荐指数
1
解决办法
418
查看次数