因此,我正在研究异常处理,并使用 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)
但是,正如您所看到的,我正在处理异常,所以我不明白为什么该消息显示在输出选项卡中。
我正在开发一个使用 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 函数的每个文件中?我认为这并不是很好的做法。