CStringArray + Pointer



  • Hi,

    ich habe ein Problem mit einem Zeiger auf ein zweidimensionales Feld.
    Ich habe 2 verschiedene Klassen. In der ersten Klasse habe ich ein CStringArray:

    CStringArray m_saExcelAktualisierung1[_defAnzAktualisierungswerte];
    

    und lese es dort ein

    ...
    int i = 0, j = 0, k = 0,Array_Index = 0;
    BOOL weiterlesen = false;
    
    if ( fExcelDef.Open(File, CFile::modeRead ) )
    {
    ...
    while ( weiterlesen )
    {
    weiterlesen = fExcelDef.ReadString(Schluessel);	
    
    m_saExcelAktualisierung1[_defName].InsertAt(i,Schluessel);
    
    weiterlesen = fExcelDef.ReadString(Schluessel);
    gService.m_saExcelAktualisierung1[_defOrtExcelDatei].InsertAt(i,Schluessel);
    
    weiterlesen = fExcelDef.ReadString(Schluessel);
    gService.m_saExcelAktualisierung1[_defTabelle].InsertAt(i,Schluessel);
    
    usw...
    }
    }
    

    Jetzt möchte ich nach der Größe des Arrays Threads starten lassen

    int array_size = m_saExcelAktualisierung1[_defName].GetSize();
    
    for (i=0;i<array_size;i++)
    {	
    	CThread *Thread;
    	Thread = new CThread;
    	Thread->InitInstance(i,  &gService.m_saExcelAktualisierung1);
    	Thread->StartThread();
    }
    

    nur weiß ich nicht genau, wie ich das Array übergeben muss, damit Änderungen, die in einem Thread vorgenommen werden, auch wirksam werden.

    Hier ist mal die InitInstance der Thread Klasse

    BOOL CThread::InitInstance(int ArrayNr, CStringArray* pArray)
    {
    	m_pExcelDefArray = pArray;
    	m_iArrayNr = ArrayNr;
    
    	return TRUE;
    }
    

    Blicke langsam nicht mehr durch. 😕


Anmelden zum Antworten