2009-06-23 55 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); 
} 
相關問題