#pragma once
#include "globals.h"
class System
{
private:
	System(void);
	~System(void);
public:
	static void* SafeAllocMemory(UINT size);
	static bool SafeFreeMemory(void* memory);
	static void ShowErrorMessage(STRING message);
	static bool ExecuteAndWait(STRING executablePath, STRING args);
	//Path existance NOT GUARANTIED
	static STRING GetTemporaryFolder();
public:
	static int MemCmp(BYTE* m1, BYTE* m2, int len);
public:
	static void MemCpy(BYTE* m1, BYTE* m2, int count);
public:
	static void WriteLog(STRING value);
public:
	static bool AllocateConsole(STRING title);
};
