2009-03-24 20 views
1

私はC++とDirect Xを使い慣れていないので、DXGetErrorStringとDXGetErrorDescriptionの正しい使い方は何ですか?DXGetErrorString初心者の質問

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)); 

んエラー文字列とエラーの説明のために割り当てられたメモリが解放されることはありませんので、メモリリークがある意味ですか?そうでない場合は、どのように解放されますか?

ありがとうございました!

答えて

3

ほとんどの場合、関数は静的な文字列を返します。したがって、関数は自由である必要はありません。

それはあなたが戻り値の解放を心配しないだろうところ、このようなコードを書くに類似するだろう:

PCWSTR GetErrorCode(int error) 
{ 
    switch (error) 
    { 
     case 1: 
      return L"File not found"; 
     ... 
     default: 
      return "Unknown error"; 
    } 
} 
+0

良い点を。私はそれについて考えなかった、ありがとう! – Kevin