diff --git a/Foundation/include/Poco/Error.h b/Foundation/include/Poco/Error.h index 1270fc835..1f96556b8 100644 --- a/Foundation/include/Poco/Error.h +++ b/Foundation/include/Poco/Error.h @@ -33,9 +33,15 @@ class Foundation_API Error public: #ifdef POCO_OS_FAMILY_WINDOWS + static DWORD last(); + /// Utility function returning the last error. + static std::string getMessage(DWORD errorCode); /// Utility function translating numeric error code to string. #else + static int last(); + /// Utility function returning the last error. + static std::string getMessage(int errorCode); /// Utility function translating numeric error code to string. #endif diff --git a/Foundation/src/Error.cpp b/Foundation/src/Error.cpp index a65965dff..a37375be1 100644 --- a/Foundation/src/Error.cpp +++ b/Foundation/src/Error.cpp @@ -19,12 +19,18 @@ #include "Poco/Error.h" #include #include +#include namespace Poco { #ifdef POCO_OS_FAMILY_WINDOWS + DWORD Error::last() + { + return GetLastError(); + } + std::string Error::getMessage(DWORD errorCode) { @@ -44,6 +50,11 @@ namespace Poco { } #else + int Error::last() + { + return errno; + } + std::string Error::getMessage(int errorCode) {