我想编写一个函数,它将 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 它超出了范围。谁能为此提供适当的功能?