0

error_code を引数として取り、エラー メッセージを取得してメッセージを返す関数を書きたかったのです。ただし、FormatMessage の場合、割り当てられたメモリは LocalFree(err_msg) を使用してクリアされます。これが戻ってくるのと一緒にどうしていけないのかわからない。

static char* return_message(int error_code) {
   LPTSTR err_msg;
   FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
            FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK,
            0, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            (LPTSTR)&err_msg, 0, 0);
  return err_msg;

上記のような方法が欲しいです。上記の場合、err_msg を返すと範囲外になります。誰でもこれに適切な機能を与えてもらえますか?

4

1 に答える 1