2009-06-23 10 views
0

tout organisme peut me aider à convertir Interface pointeur à une liste variable vC++ depuis que je reçois l'erreur alors que typeconversionComment convertir le pointeur vC++ (ex: IListPtr) en std :: list?

erreur 2440 « de type cast »: ne peut pas convertir « _bstr_t » à « std :: liste < _Ty> »

Edit: je l'ai fait comme ceci:

C#

List<string> Disp() { 
    List<string> li = new List<string>(); 
    li.Add("Ravi"); 
    li.Add("Raj"); 
    Return li; 
} 

C++

void main() { 
    HRESULT Hr=CoInitilize(NULL); 
    ITestPtr p(__uuid("DemoClass"); 
    std::list l=(std::list)p->Disp(); 
} 

Mais étrangement quelques fois il montre que Disp est pas membre de ITest et parfois cette erreur de conversion de type. J'ai vérifié que c'est seulement à cause de quand le type de retour est Liste

+1

D'abord, vous devez nous montrer du code. Deuxièmement, nous regardons votre code et vous donnons des conseils. Nifty, hein? –

+0

Montrez-nous p yeah! – Tom

Répondre

0

Je m'attendrais à ce que la meilleure chose à faire à moins qu'un Really Nice Shortcut marche manuellement la liste CLI et push_back() sur la liste std ::.

Comme exemple possible de ce qu'il pourrait ressembler (je ne sais pas C++/CLI)

std::list<T> stdlist; 
foreach(T t in CLIlist) 
{ 
    stdlist.push_back(t); 
} 
+0

Donnez-moi une explication claire yar ...... – Cute

+0

@Cute. c'est à peu près aussi clair que possible. –

Questions connexes