我是C ++和Direct X的新手,我想知道DXGetErrorString和DXGetErrorDescription的正确使用是什么?
根据http://msdn.microsoft.com/en-us/library/bb173057(VS.85).aspx和http://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));
这是否意味着存在内存泄漏,因为为错误字符串分配的内存和错误描述永远不会被释放?如果没有,它是如何发布的?
感谢您的帮助!
答案 0 :(得分:3)
最有可能的是,函数返回一个静态字符串,因此不需要自由。
这类似于编写这样的代码,你不必担心释放返回值:
PCWSTR GetErrorCode(int error)
{
switch (error)
{
case 1:
return L"File not found";
...
default:
return "Unknown error";
}
}