DXGetErrorString вопрос новичка - PullRequest
1 голос
/ 25 марта 2009

Я новичок в 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));

Означает ли это, что произошла утечка памяти, поскольку память, выделенная для строки ошибки и описания ошибки, никогда не освобождается? Если нет, то как это выпущено?

Спасибо за помощь!

1 Ответ

3 голосов
/ 25 марта 2009

Скорее всего, функции возвращают статическую строку, поэтому ее не нужно освобождать.

Это было бы похоже на написание такого кода, в котором вы бы не беспокоились об освобождении возвращаемого значения:

PCWSTR GetErrorCode(int error)
{
    switch (error)
    {
        case 1:
          return L"File not found";
        ...
        default:
          return "Unknown error";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...