共用方式為


自訂字串管理員實作 (基本方法)

自訂字串資料的記憶體配置配置最簡單的方式是使用 ATL 提供的 CAtlStringMgr 類別,但提供您自己的記憶體配置常式。 的建構函式 CAtlStringMgr 會採用單一參數:物件的指標 IAtlMemMgrIAtlMemMgr 是抽象基類,可提供堆積的泛型介面。 IAtlMemMgr使用 介面時,會 CAtlStringMgr 配置、重新配置及釋放用來儲存字串資料的記憶體。 您可以自行實作 IAtlMemMgr 介面,或使用五個 ATL 提供的記憶體管理員類別之一。 ATL 提供的記憶體管理員只會包裝現有的記憶體配置設施:

為了進行字串記憶體管理,最有用的類別是 CWin32Heap 因為它可讓您建立多個獨立的堆積。 例如,如果您想要針對字串使用個別堆積,您可以執行下列動作:

// 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); 

若要使用此私用字串管理員來管理變數的記憶體 CString ,請將指標傳遞至管理員作為參數給 CString 變數的建構函式:

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;
   }
}

另請參閱

使用 CStringT 管理記憶體