Aus CvPlot.cpp:
PHP-Code:
bool NeedToFreeMemory()
{
PROCESS_MEMORY_COUNTERS pmc;
static unsigned int uiMaxMem = 0xFFFFFFFF;
if ( uiMaxMem == 0xFFFFFFFF )
{
MEMORYSTATUSEX memoryStatus;
memoryStatus.dwLength = sizeof(memoryStatus);
GlobalMemoryStatusEx(&memoryStatus);
uiMaxMem = 1024*GC.getDefineINT("MAX_DESIRED_MEMORY_USED", DEFAULT_MAX_WORKING_SET_THRESHOLD_BEFORE_EVICTION/1024);
DWORDLONG usableMemory = memoryStatus.ullTotalPhys - 1024*(DWORDLONG)GC.getDefineINT("OS_MEMORY_ALLOWANCE", DEFAULT_OS_MEMORY_ALLOWANCE/1024);
if ( usableMemory < uiMaxMem )
{
uiMaxMem = (unsigned int)usableMemory;
}
}
GetProcessMemoryInfo( GetCurrentProcess(), &pmc, sizeof(pmc));
if ( pmc.WorkingSetSize > uiMaxMem )
{
OutputDebugString(CvString::format("Found need to free memory: %d used vs %d target\n", pmc.WorkingSetSize, uiMaxMem).c_str());
return true;
}
else
{
return false;
}
}
Compiler sagt:
Weder PROCESS_MEMORY_COUNTERS noch GetProcessMemoryInfo sind in irgendeiner .h Datei zu finden. Konkret habe ich bereits sämtliche Einträge aus den .cpp Code Dateien übernommen, wo das vorkommt. Sieht fast so aus, als würde die Mod (Caveman2Cosmos) eine andere C++ Version verwenden. Ansonsten kann ich mir nicht erklären, wo die Funktion herkommt.