Are there any differences between those two libraries?
From Wikipedia:
GDI+ adds anti-aliased 2D graphics, floating point coordinates, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like JPEG and PNG, and support for composition of affine transformations in the 2D view pipeline. GDI+ uses ARGB values to represent color.
GDI is not object oriented and provide hardware abstraction for win32 plateform. It's written in C
GDI+ is object oriented, and it's main purpose is to provide C++ classes to simplify and extend in some ways GDI usage.
GDI+ also target .NET , as System.Drawing is integrating it
According to the wikipedia article on GDI:
With the introduction of Windows XP, GDI was deprecated in favor of its successor, the C++ based GDI+ subsystem. GDI+ adds anti-aliased 2D graphics, floating point coordinates, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like JPEG and PNG, and support for composition of affine transformations in the 2D view pipeline.
GDI+ is an improvement on GDI. It contains features not readily available in GDI such as gradient brushes, alpha blending, and more image format support.
You can see what other differences are here: http://msdn.microsoft.com/en-us/library/ms536338%28v=vs.85%29.aspx