vector String^ lub inna kolekcja tego typu

0

Witam ! Krótka piłka. Czy da się, a jak tak to jak zrobić cos takiego ?

String^ S;

...

std::vector<String^> S1;
S1.push_back(S);

Jakoś mi to nie wychodzi. Druga sprawa, jeżeli nie idzie to jest jakiś odpowiednik vectora dla String^ w CLI ?

Dzięki z góry.

1

System::Collections::Generic::List<T>

http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  List<String^> lista;
  lista.Add("ala ma kota");
  lista.Add("ola ma psa");

  for each (String ^s in lista)
    Console::WriteLine(s);
}
0

Może jestem upośledzony, lub za długo/ za późno piszę jednak jak tego Arraya wstawić jako prywatne pole klasy bo ja już nie mogę ... Wskaźnika wstawiać nie mogę, normalnie jak vector wstawić nie mogę to ja już nie wiem jak ... ? Przepraszam, za takie wyciąganie info, ale jestem zmęczony.

0
ref class Dupa {
  List<String^> ^lista;
};

dwa daszki.

PS. co innego List<T>, co innego array<T>

0

Witam ! W nocy próbowałem tak robić, ale rzyga mi takim czymś:

error C3265: cannot declare a managed 'lista' in an unmanaged 'dupa'

I za bardzo nie wiem jak to rozwiązać ... Kurde tak to jest jak ktoś piszący w MFC musi szybko coś w CLI naklepać ... Dzięki za zainteresowanie.

1

klasa musi być zarządzana: ref class albo value class. prawdopodobnie to pierwsze.

0

Kompiluje się :D Dzięki ! Wielkie +1 ;p Muszę doszkolić się z tego CLI bo wbrew pierwszym wrażeniom, że to nieźle poryte, staje się całkiem spójne jak poznaje się kolejne elementy a niestety na MFC nie mam licencji...

0

To jest tak samo logiczne jak C# (bo te same klasy), tyle że składnia bardziej poryta.

Pytanie czemu nie C# tylko C++/CLI? To drugie przydaje się tylko wtedy gdy chcesz mieszać natywne wywołania z tymi z frameworka - np masz bibliotekę napisaną w natywnym C++ i chcesz jej użyć, a nie chce ci się tłumaczyć 800 prototypów funkcji i 300 stuktur na C# lub gdy natywny dll eksportuje całą klasę. Albo stworzyć wrapper, który eksportuje funkcje/klasy dla natywnego kompilatora.

W innym przypadku - po co tego używać zamiast C#? Jest bardziej ograniczone, mniej wygodne, niektórych rzeczy możliwych w C# tutaj nie zrobisz.

0

Właśnie dlatego ;p Mam program, ale podłączony do MFC do którego nie mam licencji komercyjnej, a na tym programie chcę oprzeć zlecenie ;p

0

niektórych rzeczy możliwych w C# tutaj nie zrobisz
wszystko można, tylko czasem na około...
a z rzeczy które ma C++/CLI a nie ma C# to np. modyfikacja elementów kolekcji w pętli foreach:

  array<int> ^tab = {1,2,3,4,5};
  for each(int %i in tab)
    i++; // nie da się w C#!

1 użytkowników online, w tym zalogowanych: 0, gości: 1