Suppport for MSVC DLLs.

Change-Id: Ibbcc4ba4e59f5bbf1cb91fe81c7d3b9042d03493
diff --git a/include/ceres/solver.h b/include/ceres/solver.h
index 3d63951..4fb6e4d 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -46,7 +46,7 @@
 class Problem;
 
 // Interface for non-linear least squares solvers.
-class Solver {
+class CERES_EXPORT Solver {
  public:
   virtual ~Solver();
 
@@ -55,7 +55,7 @@
   // problems; however, better performance is often obtainable with tweaking.
   //
   // The constants are defined inside types.h
-  struct Options {
+  struct CERES_EXPORT Options {
     // Default constructor that sets up a generic sparse problem.
     Options() {
       minimizer_type = TRUST_REGION;
@@ -713,7 +713,7 @@
     string solver_log;
   };
 
-  struct Summary {
+  struct CERES_EXPORT Summary {
     Summary();
 
     // A brief one line description of the state of the solver after
@@ -951,7 +951,7 @@
 };
 
 // Helper function which avoids going through the interface.
-void Solve(const Solver::Options& options,
+CERES_EXPORT void Solve(const Solver::Options& options,
            Problem* problem,
            Solver::Summary* summary);