diff --git a/include/lldb/API/SBBlock.h b/include/lldb/API/SBBlock.h
index b8e61fc..a18eab02 100644
--- a/include/lldb/API/SBBlock.h
+++ b/include/lldb/API/SBBlock.h
@@ -17,7 +17,7 @@
 
 namespace lldb {
 
-class SBBlock
+class LLDB_API SBBlock
 {
 public:
 
diff --git a/include/lldb/API/SBBreakpoint.h b/include/lldb/API/SBBreakpoint.h
index be9c499..43e7877 100644
--- a/include/lldb/API/SBBreakpoint.h
+++ b/include/lldb/API/SBBreakpoint.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBBreakpoint
+class LLDB_API SBBreakpoint
 {
 public:
 
diff --git a/include/lldb/API/SBBreakpointLocation.h b/include/lldb/API/SBBreakpointLocation.h
index 3b2ca2c..f8c03de 100644
--- a/include/lldb/API/SBBreakpointLocation.h
+++ b/include/lldb/API/SBBreakpointLocation.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBBreakpointLocation
+class LLDB_API SBBreakpointLocation
 {
 public:
 
diff --git a/include/lldb/API/SBBroadcaster.h b/include/lldb/API/SBBroadcaster.h
index 7b32d85..28b6686 100644
--- a/include/lldb/API/SBBroadcaster.h
+++ b/include/lldb/API/SBBroadcaster.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBBroadcaster
+class LLDB_API SBBroadcaster
 {
 public:
     SBBroadcaster ();
diff --git a/include/lldb/API/SBCommandInterpreter.h b/include/lldb/API/SBCommandInterpreter.h
index 184a6b4..c15e4a9 100644
--- a/include/lldb/API/SBCommandInterpreter.h
+++ b/include/lldb/API/SBCommandInterpreter.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBCommandInterpreter
+class LLDB_API SBCommandInterpreter
 {
 public:
     enum
@@ -171,7 +171,7 @@ private:
     lldb_private::CommandInterpreter *m_opaque_ptr;
 };
 
-class SBCommandPluginInterface
+class LLDB_API SBCommandPluginInterface
 {
 public:
     virtual bool
@@ -187,7 +187,7 @@ public:
     {}
 };
     
-class SBCommand
+class LLDB_API SBCommand
 {
 public:
     
diff --git a/include/lldb/API/SBCommandReturnObject.h b/include/lldb/API/SBCommandReturnObject.h
index f2d2748..c51d6bc 100644
--- a/include/lldb/API/SBCommandReturnObject.h
+++ b/include/lldb/API/SBCommandReturnObject.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBCommandReturnObject
+class LLDB_API SBCommandReturnObject
 {
 public:
 
diff --git a/include/lldb/API/SBCommunication.h b/include/lldb/API/SBCommunication.h
index ecaaa35..fa60e63 100644
--- a/include/lldb/API/SBCommunication.h
+++ b/include/lldb/API/SBCommunication.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBCommunication
+class LLDB_API SBCommunication
 {
 public:
     enum {
diff --git a/include/lldb/API/SBCompileUnit.h b/include/lldb/API/SBCompileUnit.h
index 95af3d4..64f58a8 100644
--- a/include/lldb/API/SBCompileUnit.h
+++ b/include/lldb/API/SBCompileUnit.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBCompileUnit
+class LLDB_API SBCompileUnit
 {
 public:
 
diff --git a/include/lldb/API/SBData.h b/include/lldb/API/SBData.h
index 10c0022..9f2adef 100644
--- a/include/lldb/API/SBData.h
+++ b/include/lldb/API/SBData.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBData
+class LLDB_API SBData
 {
 public:
 
diff --git a/include/lldb/API/SBDebugger.h b/include/lldb/API/SBDebugger.h
index 2386ffc..0658fd5 100644
--- a/include/lldb/API/SBDebugger.h
+++ b/include/lldb/API/SBDebugger.h
@@ -18,7 +18,7 @@
 namespace lldb {
 
     
-class SBInputReader
+class LLDB_API SBInputReader
 {
 public:
     SBInputReader();
@@ -27,7 +27,7 @@ public:
     void SetIsDone(bool);
     bool IsActive() const;
 };
-class SBDebugger
+class LLDB_API SBDebugger
 {
 public:
 
diff --git a/include/lldb/API/SBError.h b/include/lldb/API/SBError.h
index 25d7e81..d6c8fea 100644
--- a/include/lldb/API/SBError.h
+++ b/include/lldb/API/SBError.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBError {
+class LLDB_API SBError {
 public:
     SBError ();
 
diff --git a/include/lldb/API/SBEvent.h b/include/lldb/API/SBEvent.h
index 6cb975a..dd7364e 100644
--- a/include/lldb/API/SBEvent.h
+++ b/include/lldb/API/SBEvent.h
@@ -18,9 +18,9 @@
 
 namespace lldb {
 
-class SBBroadcaster;
+class LLDB_API SBBroadcaster;
 
-class SBEvent
+class LLDB_API SBEvent
 {
 public:
     SBEvent();
diff --git a/include/lldb/API/SBExpressionOptions.h b/include/lldb/API/SBExpressionOptions.h
index ac5ce95..f4562ec 100644
--- a/include/lldb/API/SBExpressionOptions.h
+++ b/include/lldb/API/SBExpressionOptions.h
@@ -17,7 +17,7 @@
 namespace lldb {
 
 
-class SBExpressionOptions
+class LLDB_API SBExpressionOptions
 {
 public:
     SBExpressionOptions();
diff --git a/include/lldb/API/SBFileSpec.h b/include/lldb/API/SBFileSpec.h
index 5d4447f..97ee662 100644
--- a/include/lldb/API/SBFileSpec.h
+++ b/include/lldb/API/SBFileSpec.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBFileSpec
+class LLDB_API SBFileSpec
 {
 public:
     SBFileSpec ();
diff --git a/include/lldb/API/SBFileSpecList.h b/include/lldb/API/SBFileSpecList.h
index 734e7d4..ff429a1 100644
--- a/include/lldb/API/SBFileSpecList.h
+++ b/include/lldb/API/SBFileSpecList.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBFileSpecList
+class LLDB_API SBFileSpecList
 {
 public:
     SBFileSpecList ();
diff --git a/include/lldb/API/SBFrame.h b/include/lldb/API/SBFrame.h
index 4ae38c1..733ad0f 100644
--- a/include/lldb/API/SBFrame.h
+++ b/include/lldb/API/SBFrame.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBFrame
+class LLDB_API SBFrame
 {
 public:
     SBFrame ();
diff --git a/include/lldb/API/SBFunction.h b/include/lldb/API/SBFunction.h
index 49a3847..18a036d 100644
--- a/include/lldb/API/SBFunction.h
+++ b/include/lldb/API/SBFunction.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBFunction
+class LLDB_API SBFunction
 {
 public:
 
diff --git a/include/lldb/API/SBHostOS.h b/include/lldb/API/SBHostOS.h
index e5fab6f..cf19b18 100644
--- a/include/lldb/API/SBHostOS.h
+++ b/include/lldb/API/SBHostOS.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBHostOS
+class LLDB_API SBHostOS
 {
 public:
 
diff --git a/include/lldb/API/SBInstruction.h b/include/lldb/API/SBInstruction.h
index aad2d87..c4bded5 100644
--- a/include/lldb/API/SBInstruction.h
+++ b/include/lldb/API/SBInstruction.h
@@ -20,7 +20,7 @@
 
 namespace lldb {
 
-class SBInstruction
+class LLDB_API SBInstruction
 {
 public:
 
diff --git a/include/lldb/API/SBInstructionList.h b/include/lldb/API/SBInstructionList.h
index 944e144..8ef1637 100644
--- a/include/lldb/API/SBInstructionList.h
+++ b/include/lldb/API/SBInstructionList.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBInstructionList
+class LLDB_API SBInstructionList
 {
 public:
 
diff --git a/include/lldb/API/SBLineEntry.h b/include/lldb/API/SBLineEntry.h
index 2d099a2..8311bbb 100644
--- a/include/lldb/API/SBLineEntry.h
+++ b/include/lldb/API/SBLineEntry.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBLineEntry
+class LLDB_API SBLineEntry
 {
 public:
 
diff --git a/include/lldb/API/SBListener.h b/include/lldb/API/SBListener.h
index c5a0473..720f41b 100644
--- a/include/lldb/API/SBListener.h
+++ b/include/lldb/API/SBListener.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBListener
+class LLDB_API SBListener
 {
 public:
     SBListener ();
diff --git a/include/lldb/API/SBModule.h b/include/lldb/API/SBModule.h
index e85654b..02a05fd 100644
--- a/include/lldb/API/SBModule.h
+++ b/include/lldb/API/SBModule.h
@@ -18,7 +18,7 @@
 
 namespace lldb {
 
-class SBModule
+class LLDB_API SBModule
 {
 public:
 
diff --git a/include/lldb/API/SBModuleSpec.h b/include/lldb/API/SBModuleSpec.h
index a615e01..4c86379 100644
--- a/include/lldb/API/SBModuleSpec.h
+++ b/include/lldb/API/SBModuleSpec.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBModuleSpec
+class LLDB_API SBModuleSpec
 {
 public:
 
@@ -109,7 +109,7 @@ private:
     std::unique_ptr<lldb_private::ModuleSpec> m_opaque_ap;
 };
 
-class SBModuleSpecList
+class LLDB_API SBModuleSpecList
 {
 public:
     SBModuleSpecList();
diff --git a/include/lldb/API/SBProcess.h b/include/lldb/API/SBProcess.h
index f284671..edd0fd0 100644
--- a/include/lldb/API/SBProcess.h
+++ b/include/lldb/API/SBProcess.h
@@ -18,9 +18,9 @@
 
 namespace lldb {
 
-class SBEvent;
+class LLDB_API SBEvent;
 
-class SBProcess
+class LLDB_API SBProcess
 {
 public:
     //------------------------------------------------------------------
diff --git a/include/lldb/API/SBQueue.h b/include/lldb/API/SBQueue.h
index 619454e..be5799e 100644
--- a/include/lldb/API/SBQueue.h
+++ b/include/lldb/API/SBQueue.h
@@ -18,7 +18,7 @@
 
 namespace lldb {
 
-class SBQueue
+class LLDB_API SBQueue
 {
 public:
     SBQueue ();
diff --git a/include/lldb/API/SBQueueItem.h b/include/lldb/API/SBQueueItem.h
index 355c5ac..718688a 100644
--- a/include/lldb/API/SBQueueItem.h
+++ b/include/lldb/API/SBQueueItem.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBQueueItem
+class LLDB_API SBQueueItem
 {
 public:
     SBQueueItem ();
diff --git a/include/lldb/API/SBSection.h b/include/lldb/API/SBSection.h
index 3386484..4e1e825 100644
--- a/include/lldb/API/SBSection.h
+++ b/include/lldb/API/SBSection.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBSection
+class LLDB_API SBSection
 {
 public:
 
diff --git a/include/lldb/API/SBSourceManager.h b/include/lldb/API/SBSourceManager.h
index 5b52c49..6e7358f 100644
--- a/include/lldb/API/SBSourceManager.h
+++ b/include/lldb/API/SBSourceManager.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBSourceManager
+class LLDB_API SBSourceManager
 {
 public:
     SBSourceManager (const SBDebugger &debugger);
diff --git a/include/lldb/API/SBStream.h b/include/lldb/API/SBStream.h
index 038adf6..f8137dd 100644
--- a/include/lldb/API/SBStream.h
+++ b/include/lldb/API/SBStream.h
@@ -16,7 +16,7 @@
 
 namespace lldb {
 
-class SBStream
+class LLDB_API SBStream
 {
 public:
 
diff --git a/include/lldb/API/SBStringList.h b/include/lldb/API/SBStringList.h
index 9d0be6e..e0e58f7 100644
--- a/include/lldb/API/SBStringList.h
+++ b/include/lldb/API/SBStringList.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBStringList
+class LLDB_API SBStringList
 {
 public:
 
diff --git a/include/lldb/API/SBSymbol.h b/include/lldb/API/SBSymbol.h
index 0a528a9..3d259a2 100644
--- a/include/lldb/API/SBSymbol.h
+++ b/include/lldb/API/SBSymbol.h
@@ -17,7 +17,7 @@
 
 namespace lldb {
 
-class SBSymbol
+class LLDB_API SBSymbol
 {
 public:
 
diff --git a/include/lldb/API/SBSymbolContext.h b/include/lldb/API/SBSymbolContext.h
index fee2d19..24c2ce9 100644
--- a/include/lldb/API/SBSymbolContext.h
+++ b/include/lldb/API/SBSymbolContext.h
@@ -20,7 +20,7 @@
 
 namespace lldb {
 
-class SBSymbolContext
+class LLDB_API SBSymbolContext
 {
 public:
     SBSymbolContext ();
diff --git a/include/lldb/API/SBSymbolContextList.h b/include/lldb/API/SBSymbolContextList.h
index 6cc78e4..79dcccd 100644
--- a/include/lldb/API/SBSymbolContextList.h
+++ b/include/lldb/API/SBSymbolContextList.h
@@ -15,7 +15,7 @@
 
 namespace lldb {
 
-class SBSymbolContextList
+class LLDB_API SBSymbolContextList
 {
 public:
     SBSymbolContextList ();
diff --git a/include/lldb/API/SBTarget.h b/include/lldb/API/SBTarget.h
index 230dffc..990d2db 100644
--- a/include/lldb/API/SBTarget.h
+++ b/include/lldb/API/SBTarget.h
@@ -22,7 +22,7 @@
 
 namespace lldb {
 
-class SBLaunchInfo
+class LLDB_API SBLaunchInfo
 {
 public:
     SBLaunchInfo (const char **argv);
@@ -119,7 +119,7 @@ protected:
     ProcessLaunchInfoSP m_opaque_sp;
 };
 
-class SBAttachInfo
+class LLDB_API SBAttachInfo
 {
 public:
     SBAttachInfo ();
@@ -226,7 +226,7 @@ protected:
     ProcessAttachInfoSP m_opaque_sp;
 };
 
-class SBTarget
+class LLDB_API SBTarget
 {
 public:
     //------------------------------------------------------------------
diff --git a/include/lldb/API/SBThread.h b/include/lldb/API/SBThread.h
index 04b6c86..04817ae 100644
--- a/include/lldb/API/SBThread.h
+++ b/include/lldb/API/SBThread.h
@@ -16,9 +16,9 @@
 
 namespace lldb {
 
-class SBFrame;
+class LLDB_API SBFrame;
 
-class SBThread
+class LLDB_API SBThread
 {
 public:
     enum
diff --git a/include/lldb/API/SBType.h b/include/lldb/API/SBType.h
index 2cd9b44..cad280c 100644
--- a/include/lldb/API/SBType.h
+++ b/include/lldb/API/SBType.h
@@ -14,9 +14,9 @@
 
 namespace lldb {
 
-class SBTypeList;    
+class LLDB_API SBTypeList;
 
-class SBTypeMember
+class LLDB_API SBTypeMember
 {
 public:
     SBTypeMember ();
@@ -68,7 +68,7 @@ protected:
     std::unique_ptr<lldb_private::TypeMemberImpl> m_opaque_ap;
 };
 
-class SBType
+class LLDB_API SBType
 {
 public:
 
@@ -210,7 +210,7 @@ protected:
     
 };
     
-class SBTypeList
+class LLDB_API SBTypeList
 {
 public:
     SBTypeList();
diff --git a/include/lldb/API/SBTypeFormat.h b/include/lldb/API/SBTypeFormat.h
index eb45ff2..c24641a 100644
--- a/include/lldb/API/SBTypeFormat.h
+++ b/include/lldb/API/SBTypeFormat.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBTypeFormat
+class LLDB_API SBTypeFormat
 {
 public:
     
diff --git a/include/lldb/API/SBValue.h b/include/lldb/API/SBValue.h
index 2b9a344..008c09e 100644
--- a/include/lldb/API/SBValue.h
+++ b/include/lldb/API/SBValue.h
@@ -19,7 +19,7 @@ class ValueLocker;
 
 namespace lldb {
 
-class SBValue
+class LLDB_API SBValue
 {
 friend class ValueLocker;
 
diff --git a/include/lldb/API/SBValueList.h b/include/lldb/API/SBValueList.h
index b9a6aed..610270d 100644
--- a/include/lldb/API/SBValueList.h
+++ b/include/lldb/API/SBValueList.h
@@ -16,7 +16,7 @@ class ValueListImpl;
 
 namespace lldb {
 
-class SBValueList
+class LLDB_API SBValueList
 {
 public:
 
diff --git a/include/lldb/API/SBWatchpoint.h b/include/lldb/API/SBWatchpoint.h
index 9bf51fd..5d0d48e 100644
--- a/include/lldb/API/SBWatchpoint.h
+++ b/include/lldb/API/SBWatchpoint.h
@@ -14,7 +14,7 @@
 
 namespace lldb {
 
-class SBWatchpoint
+class LLDB_API SBWatchpoint
 {
 public:
 
diff --git a/include/lldb/Host/windows/windows.h b/include/lldb/Host/windows/windows.h
index c88c615..8631102 100644
--- a/include/lldb/Host/windows/windows.h
+++ b/include/lldb/Host/windows/windows.h
@@ -19,7 +19,9 @@
 #define _WIN32_WINNT _WIN32_WINNT_VISTA
 #define WIN32_LEAN_AND_MEAN
 #define NOGDI
+#ifndef __MINGW32__
 #define NOMINMAX
+#endif
 #include <windows.h>
 #undef GetUserName
 #undef LoadImage
