If you want to create a solid from a closed shell, you must first check the orientation to determine if you have to reverse the shell or not (for example after creating a closed shell from a sewing operation). To do this, use the PerformInfinitePoint method from the BrepClass3D_SolidClassifier class.
For example:
BRepClass3d_SolidClassifier clas3d(aShell);
clas3d.PerformInfinitePoint(Precision::Confusion());
if (clas3d.State() == TopAbs_IN)
newShell.Reverse();
BRepBuilderAPI_MakeSolid aSolid(aShell);