[quoted text, click to view] "Arcadefreaque" <arcadefreaque@gmail.com> wrote in message
news:1191004367.838257.82140@n39g2000hsh.googlegroups.com...
> I'm realizing how little I know about C++ today as I try to convert
> some functionality from VB.Net to C++.
>
> I have a procedure that I need to pass a List of objects to, and
> cannot see how to do this using C++. It's easy in VB.Net, so I'm
> hoping it is just my silly misunderstanding of c++ that is preventing
> me from doing this in c++.
>
> In VB.Net, to create a couple of objects and add them into a generic
> list, this is the code that is used:
> ' Assign parameter list for GEOCODING
> Dim addrVal1 As New ESRI.ArcGIS.ADF.Web.Geocode.AddressValue("STREET",
> pAddress)
> Dim addrVal2 As New ESRI.ArcGIS.ADF.Web.Geocode.AddressValue("ZONE",
> pZipcode)
> Dim addrValColl As New System.Collections.Generic.List(Of
> ESRI.ArcGIS.ADF.Web.Geocode.AddressValue)
> addrValColl.Add(addrVal1)
> addrValColl.Add(addrVal2)
>
> In C++, I realize that creating the objects for the list would be
> something like this:
> Geocode::AddressValue __gc * addrVal1 = new
> Geocode::AddressValue(S"STREET", pAddress);
> Geocode::AddressValue __gc * addrVal1 = new
> Geocode::AddressValue(S"ZONE", pZipcode);
Since you're using generics, I'm assuming you're using .NET 2.0. The C++
compiler was totally changed between .NET 1.x and 2.0 and the syntax you
show is no longer used.
Try
Geocode::AddressValue^ addr1 = gcnew Geocode::AddressValue ("STREET",
pAddress);
Geocode::AddressValue^ addr2 = gcnew Geocode::AddressValue ("ZONE",
pZipcode);
System::Generic::Collections::List<Geocode::AddressValue^>^ addrValColl =
gcnew System::Generic::Collections::List<Geocode::AddressValue^>();
addrValColl->Add(addrVal1);
addrValColl->Add(addrVal2);