int main() { HANDLE hFile; hFile = CreateFile("1.txt", // open 1.txt GENERIC_READ, // open for reading FILE_SHARE_READ, // share for reading NULL, // no security OPEN_EXISTING, // existing file only FILE_ATTRIBUTE_NORMAL, // normal file NULL); // no attr. template LPVOID lpMsgBuf; //声明指针 FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | //在Formatmessage中分配空间 存储信息 FORMAT_MESSAGE_FROM_SYSTEM | //用 系统预定义的 错误原因 FORMAT_MESSAGE_IGNORE_INSERTS,//忽略最后一个参数 NULL, GetLastError(),//错误代码 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 使用当前默认语种 (LPTSTR) &lpMsgBuf,//存储错误原因 0, //上一个参数指向的地址 最大容量 NULL); //array of message inserts ::printf((char*)lpMsgBuf); LocalFree( lpMsgBuf );要释放分配的地址 return 0; } 这里CreateFile是打开一个文件用来读取,执行失败,可以获得失败原因(文件不存在等等)。