List of structs c++

Gast #1698591
Lesenswert?

Hallo Zusammen

Ich arbeite mit C++ und dem Visual Studio 2008. Ich habe eine Producer 
(USB Daten) Consumer(MySQL Datenbank) Situation.
Als erstes, wollte ich einen einfachen Producer schreiben, der geschützt 
eine Struktur in eine Liste abspeichern soll.
1
#include "stdafx.h"
2
#include "Producer.h"
3
#include <iostream>
4

5
using namespace System;
6
using namespace System::Threading;
7
using namespace System::Collections::Generic;
8

9
typedef struct PERSON {   // Declare PERSON struct type
10
  int age;   // Declare member types
11
  long ss;
12
  float weight;
13
  char name[25];
14
}; 
15
Producer::Producer(){}
16
void Producer::ThreadProc(){
17
  List<PERSON>^ test= gcnew List<PERSON^>();      // error C3225: 
18
  //Das generische Typargument für "T" kann nicht "PERSON" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
19
  while(1)  
20
  {
21
    Thread::BeginCriticalRegion();
22
    // hier möchte ich in die Liste schreiben  
23
    Thread::EndCriticalRegion();
24
    Thread::Sleep( 700 );
25
  }
26
}
wie ihr seht, gibt es einen Fehler beim erzeugen der Liste. Was mache 
ich falsch? Gibt es eine bessere Lösung, als mit einer Liste?
Für Tips bin ich sehr dankbar!
Mit freundlichen Grüssen
Frigu
Gast #1698595
Lesenswert?

> Was mache ich falsch?
das du nicht c++ programmierst, das ist doch c++.net - hat leider nicht 
viel mit c++ zu tun.

aber ich rate mal
> List<PERSON>^ test= gcnew List<PERSON^>();
bist du sicher das das ^ einmal hinter PERSON und einmal nicht steht?
#1698724
Lesenswert?

> Ich weiss nicht, was für Informationen du noch benötigst.
Na, was du versucht hast, und was nicht ging. Mit Fehlermeldung.

Warum eigentlich nicht einfach
1
List<PERSON> test;

Oder wenns Pointer/Refs sein sollen, was ist mit der oben geposteten 
Variante:
1
List<PERSON^>^ test= gcnew List<PERSON^>();
Gast #1698732
Lesenswert?

1
List<PERSON^>^ test= gcnew List<PERSON^>();
gibt: error C3699: "^": Diese Referenzierung kann nicht für den Typ 
"PERSON" verwendet werden.
1
List<PERSON> test;

gibt: error C3225: Das generische Typargument für "T" kann nicht 
"PERSON" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp 
sein.



ich muss das ganze wohl aufgeben... Trotzdem danke!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren