diff --git a/GleeBug/GleeBug.vcxproj b/GleeBug/GleeBug.vcxproj
index 4c08e2a..3fd2d7f 100644
--- a/GleeBug/GleeBug.vcxproj
+++ b/GleeBug/GleeBug.vcxproj
@@ -195,6 +195,7 @@
+
diff --git a/GleeBug/GleeBug.vcxproj.filters b/GleeBug/GleeBug.vcxproj.filters
index f7ffc42..d778bb0 100644
--- a/GleeBug/GleeBug.vcxproj.filters
+++ b/GleeBug/GleeBug.vcxproj.filters
@@ -190,6 +190,9 @@
Header Files\Zydis
+
+ Header Files
+
diff --git a/GleeBug/oprintf.h b/GleeBug/oprintf.h
new file mode 100644
index 0000000..0ad8d71
--- /dev/null
+++ b/GleeBug/oprintf.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include
+#include
+#include
+
+static inline void oprintf(const char* format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ static char dprintf_msg[66000];
+ *dprintf_msg = 0;
+ vsnprintf_s(dprintf_msg, sizeof(dprintf_msg), format, args);
+ if(GetConsoleWindow() == NULL)
+ AllocConsole();
+ auto hOut = GetStdHandle(STD_OUTPUT_HANDLE);
+ DWORD w;
+ WriteFile(hOut, dprintf_msg, strlen(dprintf_msg), &w, nullptr);
+}
+
+static inline void oputs(const char* text)
+{
+ oprintf("%s\n", text);
+}
+
+static inline void oprintf_args(_In_z_ _Printf_format_string_ const char* Format, va_list Args)
+{
+ char buffer[16384];
+ vsnprintf_s(buffer, _TRUNCATE, Format, Args);
+ oprintf("%s", buffer);
+}
\ No newline at end of file