2009-06-23 4 views
0

는 몸은 내가 오류를 얻고 있기 때문에 인터페이스 포인터 VC++에서 변수를 나열하는 변환에 도와 줄 수 typeconversionvC++ (예 : IListPtr) 포인터를 std :: list로 변환하는 방법?

오류 2440 "유형 캐스트"반면 : 표준 '에'_bstr_t '에서 변환 할 수 없습니다 :: 목록 < _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(); 
} 

그러나 이상하게도 몇 번 그것은 DISP는 ITest의 멤버 때로는 그 형식 변환 오류가 아님을 보여줍니다. 반환 유형이 List 일 때만 유효하다는 것을 확인했습니다.

+1

먼저, 당신이 우리를 보여줄 필요가 사용할 수 있습니다 (I는 C++/CLI를 모르는) 일부 코드. 두 번째로, 우리는 당신의 코드를보고 조언을 해줍니다. 멋진, 응? –

+0

우리에게 보여줘! 예! – Tom

답변

0

정말 좋은 바로 가기가 CLI 목록을 수동으로 이동하고 push_back()을 std :: list로 이동하지 않는 한 최선의 행동을 기대합니다. 그것이 어떻게 보이는지의 가능한 예를 들어

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

명확한 설명을 해주십시오 .... – Cute

+0

@ 귀염둥이. 그 정도는 분명합니다. –

관련 문제