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 を返すと範囲外になります。誰でもこれに適切な機能を与えてもらえますか?