gpt4 book ai didi

c++ - 什么是 DX::ThrowIfFailed?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:59 24 4
gpt4 key购买 nike

最近我又回到了 C++ 中。我已经离开 C++/CLI 而使用 C# 至少一年了,我有点生疏了。我正在查看适用于 Windows 8 的 Direct3D 应用程序的基本示例,但找不到任何可以解释

 DX::ThrowIfFailed

确实如此。从它所说的,如果 DirectX 中的某些东西失败了,它会执行一些东西,但从实现来看,它看起来像是用于初始化东西,作为 Direct3D 演示的基础:

    Platform::String^ text = "Hello, DirectX!";

DX::ThrowIfFailed(
m_dwriteFactory->CreateTextLayout(
message->Data(),
message->Length(),
m_textFormat.Get(),
700, // maxWidth.
1000, // maxHeight.
&m_textLayout
)
);

谁能给我解释一下这个函数是如何工作的。我看到它分散在各个示例中,但没有多少谷歌搜索可以缓解适当的文档。提前谢谢你!

最佳答案

此函数将失败 HRESULT 转换为异常。它在 DirectXHelper.h 中是这样定义的,它是 Direct3D 应用程序模板的一部分:

inline void ThrowIfFailed(HRESULT hr)
{
if (FAILED(hr))
{
// Set a breakpoint on this line to catch Win32 API errors.
throw Platform::Exception::CreateException(hr);
}
}

如果您使用的是 Visual Studio,则可以右键单击代码中 ThrowIfFailed 的任何实例,然后选择“转到定义”。这将打开包含定义的文件并导航到它的位置。

For more information on this helper, see GitHub

关于c++ - 什么是 DX::ThrowIfFailed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13592255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com