|  | @@ -403,7 +403,7 @@ class FileGenerator::ForwardDeclarations {
 | 
	
		
			
				|  |  |    std::map<string, const Descriptor*>& classes() { return classes_; }
 | 
	
		
			
				|  |  |    std::map<string, const EnumDescriptor*>& enums() { return enums_; }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  void Print(io::Printer* printer) const {
 | 
	
		
			
				|  |  | +  void Print(io::Printer* printer, const Options& options) const {
 | 
	
		
			
				|  |  |      for (std::map<string, const EnumDescriptor *>::const_iterator
 | 
	
		
			
				|  |  |               it = enums_.begin(),
 | 
	
		
			
				|  |  |               end = enums_.end();
 | 
	
	
		
			
				|  | @@ -422,8 +422,11 @@ class FileGenerator::ForwardDeclarations {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        printer->Print(
 | 
	
		
			
				|  |  |            "class $classname$DefaultTypeInternal;\n"
 | 
	
		
			
				|  |  | +          "$dllexport_decl$"
 | 
	
		
			
				|  |  |            "extern $classname$DefaultTypeInternal "
 | 
	
		
			
				|  |  |            "_$classname$_default_instance_;\n",  // NOLINT
 | 
	
		
			
				|  |  | +          "dllexport_decl",
 | 
	
		
			
				|  |  | +          options.dllexport_decl.empty() ? "" : options.dllexport_decl + " ",
 | 
	
		
			
				|  |  |            "classname",
 | 
	
		
			
				|  |  |            it->first);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -433,7 +436,7 @@ class FileGenerator::ForwardDeclarations {
 | 
	
		
			
				|  |  |           it != end; ++it) {
 | 
	
		
			
				|  |  |        printer->Print("namespace $nsname$ {\n",
 | 
	
		
			
				|  |  |                       "nsname", it->first);
 | 
	
		
			
				|  |  | -      it->second->Print(printer);
 | 
	
		
			
				|  |  | +      it->second->Print(printer, options);
 | 
	
		
			
				|  |  |        printer->Print("}  // namespace $nsname$\n",
 | 
	
		
			
				|  |  |                       "nsname", it->first);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -808,7 +811,7 @@ void FileGenerator::GenerateForwardDeclarations(io::Printer* printer) {
 | 
	
		
			
				|  |  |      dependency.FillForwardDeclarations(&decls);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    FillForwardDeclarations(&decls);
 | 
	
		
			
				|  |  | -  decls.Print(printer);
 | 
	
		
			
				|  |  | +  decls.Print(printer, options_);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void FileGenerator::FillForwardDeclarations(ForwardDeclarations* decls) {
 |