diff --git a/adb/Android.mk b/adb/Android.mk index 4ffb589e3..f3a482283 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -96,9 +96,6 @@ LOCAL_STATIC_LIBRARIES := libcrypto_static ifeq ($(HOST_OS),windows) LOCAL_C_INCLUDES += development/host/windows/usb/api/ - # Windows.h defines an awful ERROR macro that collides with base/logging.h. - # Suppress it with NOGDI. - LOCAL_CFLAGS += -DNOGDI endif include $(BUILD_HOST_STATIC_LIBRARY) @@ -165,9 +162,6 @@ ifeq ($(HOST_OS),darwin) endif ifeq ($(HOST_OS),windows) - # Windows.h defines an awful ERROR macro that collides with base/logging.h. - # Suppress it with NOGDI. - LOCAL_CFLAGS += -DNOGDI LOCAL_LDLIBS += -lws2_32 -lgdi32 EXTRA_STATIC_LIBS := AdbWinApi endif diff --git a/adb/adb_auth_host.cpp b/adb/adb_auth_host.cpp index 558151615..61a377737 100644 --- a/adb/adb_auth_host.cpp +++ b/adb/adb_auth_host.cpp @@ -16,11 +16,6 @@ #define TRACE_TAG TRACE_AUTH -#ifdef _WIN32 -// This blocks some definitions we need on Windows. -#undef NOGDI -#endif - #include "sysdeps.h" #include "adb_auth.h" diff --git a/adb/sysdeps_win32.cpp b/adb/sysdeps_win32.cpp index b7962b92b..a21272fb4 100644 --- a/adb/sysdeps_win32.cpp +++ b/adb/sysdeps_win32.cpp @@ -16,9 +16,6 @@ #define TRACE_TAG TRACE_SYSDEPS -// For whatever reason this blocks the definition of ToAscii... -#undef NOGDI - #include "sysdeps.h" #include /* winsock.h *must* be included before windows.h. */ diff --git a/base/include/base/logging.h b/base/include/base/logging.h index 4a15f4305..283a7bc90 100644 --- a/base/include/base/logging.h +++ b/base/include/base/logging.h @@ -13,18 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - #ifndef BASE_LOGGING_H #define BASE_LOGGING_H -#ifdef ERROR -#error ERROR is already defined. If this is Windows code, #define NOGDI before \ -including anything. -#endif - +// NOTE: For Windows, you must include logging.h after windows.h to allow the +// following code to suppress the evil ERROR macro: #ifdef _WIN32 -#ifndef NOGDI -#define NOGDI // Suppress the evil ERROR macro. +// windows.h includes wingdi.h which defines an evil macro ERROR. +#ifdef ERROR +#undef ERROR #endif #endif diff --git a/base/logging.cpp b/base/logging.cpp index 7a08c39f2..34229a2f8 100644 --- a/base/logging.cpp +++ b/base/logging.cpp @@ -14,6 +14,10 @@ * limitations under the License. */ +#ifdef _WIN32 +#include +#endif + #include "base/logging.h" #include @@ -34,8 +38,6 @@ #ifndef _WIN32 #include -#else -#include #endif #include "base/macros.h"