1

我是 C++ 和 Direct X 的新手,我想知道 DXGetErrorString 和 DXGetErrorDescription 的正确用法是什么?

根据http://msdn.microsoft.com/en-us/library/bb173057(VS.85).aspxhttp://msdn.microsoft.com/en-us/library/bb173056(VS.85)。 aspx,这些函数返回一个指向字符串的指针。但是,在我在网络上看到的所有示例中,它们直接使用返回值而没有在之后释放它。

例如:

char buf[2048];
sprintf(buf, "Error: %s error description: %s\n",DXGetErrorString(hr),DXGetErrorDescription(hr));

这是否意味着存在内存泄漏,因为为错误字符串分配的内存和错误描述从未释放?如果没有,它是如何发布的?

感谢您的帮助 !

4

1 回答 1

3

最有可能的是,这些函数返回一个静态字符串,因此不需要释放它。

它类似于编写这样的代码,您不必担心释放返回值:

PCWSTR GetErrorCode(int error)
{
    switch (error)
    {
        case 1:
          return L"File not found";
        ...
        default:
          return "Unknown error";
    }
}
于 2009-03-24T21:47:01.720 回答