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.