Visual Studio: calling into _vsnprintf. (#1085)
diff --git a/imgui.cpp b/imgui.cpp
index 41cd5be..426d196 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -1257,6 +1257,11 @@
 // Ideally we would test for only one of those limits at runtime depending on the behavior the vsnprintf(), but trying to deduct it at compile time sounds like a pandora can of worm.
 // B) When buf==NULL vsnprintf() will return the output size.
 #ifndef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS
+
+#if defined(_MSC_VER) && !defined(vsnprintf)
+#define vsnprintf _vsnprintf
+#endif
+
 int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...)
 {
     IM_ASSERT(fmt != NULL);
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 5e2e423..28f7c80 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -36,7 +36,8 @@
 
 #ifdef _MSC_VER
 #pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
-#define snprintf _snprintf
+#define snprintf  _snprintf
+#define vsnprintf _vsnprintf
 #endif
 #ifdef __clang__
 #pragma clang diagnostic ignored "-Wold-style-cast"             // warning : use of old-style cast                              // yes, they are more terse.