Frage zu CString:Compare...
-
Hallo kann mir wer sagen wor hier der fehler is:
if(strToCheck->Left(3).Compare(*m_KeysA[i].keyword) == 0)) { ... }Das ganze wird ohne fehler compiliert... aber fürht zu einem Laufzeit fehler...
Die Klasse von m_KeysA sieht wie folgt aus:class SKeyword { public: CString* keyword; int keylen; int nColorInd; };
-
Nun hab ich's so gemacht:
int size = sizeof(m_KeysA)/10; int i = 0; bool bGo = true; while(bGo) { AfxMessageBox("searching"); if(strToCheck->Left(4) == *m_KeysA[i].keyword) { AfxMessageBox("found"); bGo = false; } if(i == size) bGo = false; i++; }läuft das ganze aber nur 2 mal durch und dann kommt wieder der fehler

valen16
valen16@binary-pulse.org
[url] http://www.binary-pulse.org/~valen16/ [/url]
-
Wie kommst du auf 10?
-
Was für ein Laufzeitfehler kommt denn?
Muss "keyword" in Deiner Klasse unbedingt ein Zeiger sein?
int size = // die Anzahl der Elemente in Deinem Array wird Dir wohl bekannt // sein, die Berechnung wird so nicht klappen CString strCheck = strToCheck->Left(4); int nFound = -1; for(int i = 0; i < size; ++i) if(strCheck == *(m_KeysA[i].keyword)) { AfxMessageBox(_T("found")); nFound = i; break; }