* Enable warnings
* Work without "-fpermissive" option
* Cosmetic fix
* Add "const" to fix warnings
These strings are not needs to modify.
* No need to use "#pragma once" in main C++ source file
* Cosmetic fix
Add newline to end
* Return nullptr if error
* delete() not works for "void*"
Cast specific type to use delete()
* Disable VC++ specific pragmas for other C++ compilers
* Fix warning
* Fix warning
* Use pipeline for compiler
* Enable code optimization
* Add "default:" to fix "switch" syntax warning
* Use "nullptr" for null pointer
* Use nullptr instead of NULL
* Use nullptr instead of NULL
* Use "L" notation for wide character
* Use C++ header instead of raw C header
Several classes and functions were not const-correct. Did the minimal changes
to fix compilation, although there are other const fixes that can be done.