[C++] 纯文本查看 复制代码
VOID ReportError (LPCTSTR userMessage, DWORD exitCode, BOOL printErrorMessage)
{
DWORD eMsglen;
DWORD errNum = GetLastError();
LPTSTR lpvSysMsg;
_ftprintf(stderr, _T("%s\n"), userMessage);
if (printErrorMessage) {
eMsglen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, errNum, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpvSysMsg, 0, NULL);
if (eMsglen > 0) {
_ftprintf(stderr, _T("%s\n"), lpvSysMsg);
}else {
_ftprintf (stderr, _T("Last Error Number: %d.\n"), errNum);
}
if (lpvSysMsg != NULL)
LocalFree(lpvSysMsg);
}
if (exitCode > 0)
ExitProcess(exitCode);
return;
}
#define DIRNAME_LEN 1000
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR pwdBuffer[DIRNAME_LEN];
DWORD CurDirLen;
CurDirLen = GetCurrentDirectory(DIRNAME_LEN, pwdBuffer);
if (CurDirLen == 0)
ReportError(_T("Failure getting pathname."), 1, TRUE);
if (CurDirLen > DIRNAME_LEN)
ReportError(_T("Pathname is too long."), 2, FALSE);
_ftprintf (stdout, _T("%s"), pwdBuffer);
return 0;
}