?
ups ... sry. glaube das sollte besser so lauten. Hab das gestern von unterwegs geschrieben.
hier mal die Struktur
#define MAX_NAME_LENGTH 50
struct MyStruct
{
TCHAR Name[MAX_NAME_LENGTH]; // 50 halt gegen die maximale namenslänge austauschen
TCHAR Directory[MAX_PATH]; // MAX_PATH ist in windef.h auf 260 definiert
bool state;
};
hier der code
CMap<CString, LPCTSTR, MyStruct*, MyStruct*> myMap;
MyStruct* pMyStruct = new MyStruct();
CString csName = _T( "test" );
memset( pMyStruct, 0, sizeof( MyStruct ) );
//
// hier dann die Struktur mit deinen Werten füllen und
// dann in der Map speichern.
//
_tcscpy_s(pMyStruct->Name, MAX_NAME_LENGTH, csName);
//pMyStruct->Name = csName;
myMap.SetAt( pMyStruct->Name, pMyStruct );
//
// so ... oben wurde die map gefüllt. und so kommst du wieder
// an die Objekte ran
//
MyStruct* pMyStruct2 = NULL;
myMap.Lookup(csName, pMyStruct2);
//
// nicht vergessen den speicher, der mit new reserviert
// worden ist wieder freizugeben. Dazu müsste man einmal
// mittels schleife/iterator durch die map laufen und den
// speicher der MyStruct Strukturen wieder freigeben, wenn
// die Objekte in der map nicht mehr gebraucht werden.
//
CMap<CString, LPCTSTR, MyStruct*, MyStruct*>::CPair* pPair = myMap.PGetFirstAssoc();
while( pPair )
{
delete pPair->value;
pPair = myMap.PGetNextAssoc(pPair);
}
myMap.RemoveAll();
Gruß
Hiho