Udostępnij za pośrednictwem


Wdrożenia z Menedżera ciąg niestandardowy (metoda podstawowe)

Najprostszym sposobem dostosowywania systemu alokacji pamięci dla danych string jest użycie ATL dostarczonych CAtlStringMgr klasy, ale zapewnia pamięci własnych procedur alokacji.Konstruktor CAtlStringMgr przyjmuje jeden parametr: wskaźnik do IAtlMemMgr obiektu.IAtlMemMgrto abstrakcyjna klasa podstawowa, który udostępnia interfejs generic do sterty.Za pomocą IAtlMemMgr interfejsu, CAtlStringMgr przydziela, reallocates i zwalnia pamięć używaną do przechowywania danych string.Można albo wdrożenie IAtlMemMgr interfejsu samodzielnie lub użyć pięć klas Menedżera pamięci ATL-warunkiem.Menedżerowie pamięci dostarczonych ATL Zawijaj po prostu istniejących urządzeń alokacji pamięci:

Do zarządzania pamięcią ciąg, jest najbardziej użyteczna klasy CWin32Heap , ponieważ umożliwia tworzenie wielu stert niezależnych.Na przykład jeśli chcemy używać oddzielnej sterty dla ciągów może wykonaj następujące czynności:

// Declare a thread-safe, growable, private heap with initial size 0:
CWin32Heap g_stringHeap(0, 0, 0);

// Declare a string manager that uses the private heap:
CAtlStringMgr g_stringMgr(&g_stringHeap); 

Za pomocą Menedżera ten ciąg prywatnej pamięci dla zarządzania CString zmienna przebiegu wskaźnik do Menedżera jako parametr do CString zmiennej konstruktora:

void PrintPowers(int nBase)
{
   int n = 1;
   for(int nPower = 0; nPower < 10; nPower++)
   {
      // Use the private string manager, instead of the default:
      CString strPower(&g_stringMgr);

      strPower.Format(_T("%d"), n);
      _tprintf_s(_T("%s\n"), strPower);
      n *= nBase;
   }
}

Zobacz też

Koncepcje

Zarządzanie pamięcią z CStringT