2009-06-23 56 views
0

任何机构可以帮助我在转换接口指针列出VC可变++,因为我得到的错误,而typeconversion如何将vC++(例如:IListPtr)指针转换为std :: list?

错误2440“类型强制转换”:无法从“_bstr_t”转换为“的std ::名单< _Ty>”

编辑:我已经做了这样的:

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(); 
} 

但是奇怪有时它表明详细显示不是ITEST的成员,并且有时该类型的转换错误。我已经验证这只是因为当返回类型是列表

+1

首先,您需要向我们展示一些代码。其次,我们看你的代码并给你建议。漂亮,是吧? – 2009-06-23 15:45:25

+0

向我们展示p耶! – Tom 2009-06-24 05:00:26

回答

0

我希望最好的事情要做,除非有一个真的不错的快捷方式是手动走CLI列表和push_back()到std :: list。

由于它看起来可能像一个可能的例子(我不知道C++/CLI)

std::list<T> stdlist; 
foreach(T t in CLIlist) 
{ 
    stdlist.push_back(t); 
} 
相关问题