Are there any differences between those two libraries?
4 Answers
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.

- 9,612
- 1
- 22
- 25
-
6Actually [MSDN does not mention GDI to be deprecated](https://msdn.microsoft.com/en-us/library/dd145203%28v=vs.85%29.aspx), so I'd suggest GDI can be (at the moment) safely used for C procedural usage, while GDI+ stands for C++ OO usage. – snuk182 Apr 13 '17 at 15:16
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

- 15,535
- 14
- 95
- 108
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

- 11,491
- 7
- 53
- 69
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.

- 236,483
- 35
- 423
- 525