From 0b22ba4c30519a209bb1286e89e9e512372cbd1b Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Wed, 15 Sep 2004 05:48:11 +0000 Subject: [PATCH] First version of a common header file for Win32 implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16360 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Win32/Win32.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 lib/System/Win32/Win32.h diff --git a/lib/System/Win32/Win32.h b/lib/System/Win32/Win32.h new file mode 100644 index 00000000000..fb2c7e96fdf --- /dev/null +++ b/lib/System/Win32/Win32.h @@ -0,0 +1,33 @@ +//===- Win32/Win32.h - Common Win32 Include File ----------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Reid Spencer and is distributed under the +// University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines things specific to Unix implementations. +// +//===----------------------------------------------------------------------===// + +//===----------------------------------------------------------------------===// +//=== WARNING: Implementation here must contain only generic UNIX code that +//=== is guaranteed to work on all UNIX variants. +//===----------------------------------------------------------------------===// + +#include "llvm/Config/config.h" // Get autoconf configuration settings +#include "windows.h" +#include +#include + +inline void ThrowError(const std::string& msg) { + char *buffer = NULL; + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, + NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL); + std::string s(msg); + s += buffer; + LocalFree(buffer); + throw s; +} +