Avatar billede bleze Nybegynder
02. juli 2008 - 14:40 Der er 3 kommentarer og
1 løsning

Managed C++ arrays

Har lidt problemer med at få konverteret mellem arrays:

Error    2    error C2664: 'PDMWebReference::PDMWebSVCService::createDocument' : cannot convert parameter 2 from 'System::Array ^' to 'cli::array<Type> ^'    c:\Development\LaserNet\6.5\Sources\PDMOutputPort\PDM.cpp    629

Source:

result.docID = mDatasource->createDocument(doc, metaData.extendedKeys->ToArray((gcnew PDMWebReference::LineItemDtoWS())->GetType()));

ToArray findes i 2 overloads. Den ene returnerer cli::array<Type>. Den anden en System::Array (som i mit eksempel). Problemet er at createDocument funktionen skal bruge cli::array<LineItemDtoWS>, men hvis jeg gør ovenstående får jeg et System::Array.
Fjerner jeg GetType delen, så får jeg et cli:array men af en forkert type System::Object og ikke en LineItemDtoWS som jeg skal bruge.
Hvordan får jeg konverteret mit array til noget som createDocument forstår?
Avatar billede segmose Nybegynder
04. juli 2008 - 11:53 #1
Jeg vil svare her med risiko for at sige noget ævl da jeg ikke ved noget som helst om managed C++.

Du har et problem med dine typer, prøv at dele din linie op i sine bestand dele med temporære variable af den rigtige type så det virker mere overskueligt.
Derefter kan det være at vi skal se på nogle definition for at kunne regne ud hvad der er galt.
Avatar billede arne_v Ekspert
06. juli 2008 - 03:19 #2
Findes der en dokumentation til PDMWebReference::PDMWebSVCService::createDocument hvor vi
kan se de 2 overloads ?
Avatar billede arne_v Ekspert
06. juli 2008 - 03:26 #3
Men et skud fra hoften:

result.docID = mDatasource->createDocument(doc, metaData.extendedKeys->ToArray(Type));

eller

result.docID = mDatasource->createDocument(doc, metaData.extendedKeys->ToArray(cli::array<Type>::typeid));
Avatar billede bleze Nybegynder
06. juli 2008 - 22:43 #4
tak for forsøget drenge... løsningen var at type caste ala (cli::array<LineItemDtoWS^>^)metaData.extendedKeys->ToArray(LineItemDtoWS::typeid)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester