2014-02-12 220 views
0

如何通過從C#庫C++的對象。傳遞對象

我可以調用的返回voidint沒有任何問題的功能。

現在考慮在C#下面的函數,

List<CSharpClass> CSharpFunction(string Input) 

在我的C#類包含,

public class CSharpClass 
{ 
    string mystring = string.Empty; 
    byte[] bytearray = null;   

    public byte[] bytearray 
    { 
     get { return bytearray ; } 
     set { bytearray = value; } 
    } 

    public string mystring 
    { 
     get { return mystring ; } 
     set { mystring = value; } 
    }  
} 

現在,我想在C++中使用此列表。所以我創造了,

typedef std::vector<class CSharpClass> MyDetailList; 

這是正確的方式嗎?如果不是我需要在C++中使用?

回答

-1

如果你想調用從C++代碼C#DLL,你可以按照this article。 簡而言之,你將不得不:
- 寫一個託管DLL包含您的CSharpClass
- 與COM或用本機C++
註冊使用託管DLL - 從本機C++代碼

調用託管DLL

This SO question也是相關的,以及含有其他解決辦法,如果你想避免使用COM


初始誤導答案:

你可以檢查this article一個相當好的教程。 簡而言之,你將不得不:
- 從你的C++代碼編譯一個dll
- 馬歇爾( 「翻譯」)C#和C++
之間你的類 - 加載從C#的dll,使用的DllImport聲明
- 調用進口方法

+0

我有C#DLL,想要得到的byte []在C++項目。正如我所提到的,我可以調用一個返回void或int而沒有任何問題的函數。 – Dinesh

+0

哦,我的壞,我誤解了這個問題。將相應地編輯答案 –

+0

感謝您的更新答案,但我找不到任何答案來獲取C++項目中的字節[] :( – Dinesh