Datentyp CList

Winner

Erfahrenes Mitglied
Hallo zusammen. Ich galueb ich bekomm es heute nicht mehr hin.
Ich möchte ein einfaches CList Objekt füllen. Was mache ich falsch.

Ich habe hier schon im Forum gesucht, aber damit komm ich auch nicht weiter. Bitte um Hilfe.

Also mein Code:
Code:
CList <int, int> myList;

    int i=0;
    myList.AddHead(i);
    i++;
    myList.AddTail(i);
    i++;
    myList.AddTail(i);

Beim compilieren istdas richtig aber sobal ich das ausfürhen will kommt folgende Meldung:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/toHex.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.


Ich bitte euch um Hilfe

besten dank winner
 
Hallo,
versuche mal folgende Einstellung:
Projekteinstellungen -> Registerkarte: "C++" -> Kategorie: "Code Generation"
Hier bei "Laufzeit-Bibliothek" den Eintrag "Multithreaded DLL" auswählen.

Gruß
MCoder
 
Hi,

also ich bin ein Anfänger und habe erst die erste Übung mit klassen/Objekte/Instanzen gemacht.

Ich weiß nicht was die Fehlermeldungen heißen bzw. weiß ich nicht was daran falsch ist aber:

Wieso gibst du hinter dem "Typ" (CList) <int, int> an?

Ich würde das folgendermaßen machen (ohne zu wissen was/wozu das da ist!):

Code:
CList myList;
 
Danke an MCoder. Ich habe das ganze mal in einer mfc anwendung durch geführt. Da klappt es bestens.

Aber ich möchte die CList benutzen um in diese Objekte von einer Klasse rein zuschreiben.

Dafür müsste dann die Defintion so sein oder:
Code:
CList <myClass,myClass&> myList;

Dazu auch gleich noch eine Frage. Muss ich meine eigene Klasse vorher noch irgendwo bekannt machen.
 
Hallo!

Es klappt jetzt alles wie ich es haben will, zu mindest weckt es den anscheind.

Aber ich schreibe die Objekte in meine Liste. Später möchte ich sie lesen. Da ist jetzt aber auch das Problem! Wie prüfe ich, ob ich ob die Liste leer ist. mit der

mylist.isEmpty() Methode kann ich doch nur prüfen, ob der entsprechende Listeneintrag leer ist oder

Bitte um Hilfe.

Würde gerne eine while schleifen bauen, die mir meine Sachen ausliest und prüft wie lang es sein muss. Mein Ansatz:

Code:
     clMes_1004_ausgabe = clHeader_1001to1004.listMes1004.GetHead();
     
     while(clHeader_1001to1004.listMes1004.IsEmpty()){
     //Obejkt auslesen

         //neuen Listen eintrag laden
         clMes_1004_ausgabe = clHeader_1001to1004.listMes1004.GetNext();
     
     }

wo ist da bitte der Fehler
 
Hallo,

mit "isEmpty()" prüfst du die gesamte Liste. Demzufolge hast du auch eine Endlosschleife gebaut. Außerdem ist die Anwendung von "GetNext()" nicht ganz korrekt.
Um alle Elemente in einer Schleife zu durchlaufen müsstest du folgendes machen:
C++:
POSITION pos = clHeader_1001to1004.listMes1004.GetHeadPosition();

for( int i = 0; i < clHeader_1001to1004.listMes1004.GetCount(); i++ )
{
    clMes_1004_ausgabe = clHeader_1001to1004.listMes1004.GetNext(pos);
}
Gruß
MCoder
 
Ich habe da ein weiteres Problem.

Frag mich mal wieso das bei mir nicht da ist.

Ich möchte gerne nachdem ich meine Liste einmal koplett ausgelesen habe, diese wieder leer machen.

Dazu habe ich auch die Methode myList.RemoveAll() gefunden.
So steht sie zumindest in der msdn.
Aber ich bekomme diese Methode leider nicht auf mein Objekt angewendet bzw. angeboten.

Gibts dort eine andere möglichkeit die Liste wieder leer zumachen
 
Zurück