2012-07-09 68 views
0

我有一個字典myResult:字典與字節數組參數

Dictionary<String^,array<Byte>^>^ myResult = gcnew Dictionary<String^,array<Byte>^>(); 

我聲明

array <Byte^>^ a; 

,然後我加入一個到詞典

myResult->Add("OVERVIEW",a); 

的關鍵我收到錯誤

error C2664: 'System::Collections::Generic::Dictionary<TKey,TValue>::Add' : 
cannot  convert parameter 2 from 'cli::array<Type> ^' to 'cli::array<Type> ^' 
1>   with 
1>   [ 
1>    TKey=System::String ^, 
1>    TValue=cli::array<unsigned char>^
1>   ] 
1>   and 
1>   [ 
1>    Type=System::Byte^
1>   ] 
1>   and 
1>   [ 
1>    Type=unsigned char 
1>   ] 

任何幫助表示讚賞,因爲我還不是很熟悉C++/cli;

回答

0
Dictionary<String^,array<Byte>^>^ 
         ^Uppercase B 

array <byte^>^ a; 
    ^Lowercase B 

Byte^byte^名不同類型的(實際上,我有些詫異,後者編譯,雖然我不是一個C++/CLI專家)。前者是System::Byte的追蹤句柄。後者是一個unsigned char(顯然編譯器正在放棄這個帽子,我認爲它是這樣做的,因爲它不是CLI類型,因此不適合戴帽子)。

+0

這是一個錯誤的問題。在代碼中,它們都是大寫字母。我現在解決了這個問題。即使在Byte中都有大寫字母B,錯誤仍然存​​在。 – fmvpsenior 2012-07-09 23:26:07

+0

假設錯誤是你說的那樣,這仍然是問題:類型是不一樣的。一個是'Byte ^',另一個是'unsigned char'。 – 2012-07-09 23:29:19

+0

那麼我該如何解決它? – fmvpsenior 2012-07-09 23:35:07