<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(QTDIR)\lib</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(QTDIR)\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32</AdditionalLibraryDirectories>
<AdditionalDependencies>QtCored4.lib;QtGuid4.lib;Psapi.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>$(QTDIR)\lib</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>$(QTDIR)\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32</AdditionalLibraryDirectories>
<AdditionalDependencies>QtCore4.lib;QtGui4.lib;Psapi.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
#include <ctime>
#include <process.h>
+//VLD
+#include <vld.h>
+
///////////////////////////////////////////////////////////////////////////////
// Random Support
///////////////////////////////////////////////////////////////////////////////
// SELF-TEST
///////////////////////////////////////////////////////////////////////////////
-int MUtils::Internal::selfTest(const char *const date, const bool debug)
+int MUtils::Internal::selfTest(const char *const buildKey, const bool debug)
{
- if(strncmp(date, __DATE__"@"__TIME__, 14) || (MUTILS_DEBUG != debug))
+ static const bool MY_DEBUG_FLAG = MUTILS_DEBUG;
+ static const char *const MY_BUILD_KEY = __DATE__"@"__TIME__;
+
+ if(strncmp(buildKey, MY_BUILD_KEY, 14) || (MY_DEBUG_FLAG != debug))
{
MUtils::OS::system_message_err(L"MUtils", L"FATAL ERROR: MUtils library version mismatch detected!");
+ MUtils::OS::system_message_wrn(L"MUtils", L"Please re-build the complete solution in order to fix this issue!");
abort();
}
return 0;
static const char *g_months_lut[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-static int month2int(const char *str)
+static int month_str2int(const char *str)
{
int ret = 0;
return ret;
}
-static const QDate decode_date_str(const char *const date_str)
+static const QDate decode_date_str(const char *const date_str) //Mmm dd yyyy
{
bool ok = true;
int date[3] = {0, 0, 0};
- char month_s[4];
+ char buffer[12];
- ok = ok && (_snscanf(&date_str[0x0], 3, "%s", &month_s) == 1);
- ok = ok && ((date[1] = month2int(month_s)) > 0);
- ok = ok && (_snscanf(&date_str[0x4], 2, "%d", &date[2]) == 1);
- ok = ok && (_snscanf(&date_str[0x7], 4, "%d", &date[0]) == 1);
+ strcpy_s(buffer, 12, date_str);
+ buffer[3] = buffer[6] = '\0';
+
+ ok = ok && ((date[1] = month_str2int(&buffer[0])) > 0);
+ ok = ok && (sscanf_s(&buffer[4], "%d", &date[2]) == 1);
+ ok = ok && (sscanf_s(&buffer[7], "%d", &date[0]) == 1);
if(!ok)
{
return QDate(date[0], date[1], date[2]);
}
-static const QTime decode_time_str(const char *const time_str)
+static const QTime decode_time_str(const char *const time_str) //hh:mm:ss
{
bool ok = true;
int time[3] = {0, 0, 0};
+ char buffer[9];
+
+ strcpy_s(buffer, 9, time_str);
+ buffer[2] = buffer[5] = '\0';
- ok = ok && (_snscanf(&time_str[0x0], 2, "%d", &time[0]) == 1);
- ok = ok && (_snscanf(&time_str[0x3], 2, "%d", &time[1]) == 1);
- ok = ok && (_snscanf(&time_str[0x6], 2, "%d", &time[2]) == 1);
+ ok = ok && (sscanf_s(&time_str[0], "%d", &time[0]) == 1);
+ ok = ok && (sscanf_s(&time_str[3], "%d", &time[1]) == 1);
+ ok = ok && (sscanf_s(&time_str[6], "%d", &time[2]) == 1);
if(!ok)
{