2011-04-18 64 views
2

Hy!我在Visual C++ 6中有以下代碼,我想用C#轉換它。我應該如何將C#中的VAriant轉換爲C#

SAFEARRAY * psa = NULL; 
SAFEARRAYBOUND rgsabound; 
rgsabound.lLbound = 0; 
rgsabound.cElements = infoList.GetCount(); 
psa = SafeArrayCreate(VT_BSTR, 1, &rgsabound); 
    ...... 

VARIANT listaF; 
V_VT(&listaF) = VT_ARRAY|VT_BSTR; 
listaF.parray = psa; 

有人能幫助我嗎?

+0

I've試圖使列表 listaF =新名單(),但它是不一樣的,我不'噸知道什麼是用C# – user599977 2011-04-18 14:12:56

+0

做到這一點[SAFEARRAY(HTTP是SAFEARRAY:// MSDN。 microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.safearray.aspx)爲你工作? – 2011-04-18 14:20:14

+0

沒有。沒有工作 – user599977 2011-04-19 06:33:58

回答

1

safearray是COM/OLE中的數組(參見reference from Sanjeevakumar Hiremath),BSTR是COM/OLE字符串。 A variant是可以存儲多種類型數據的通用結構。

然後,你有什麼是在一個VARIANT包裝的BSTR safearray。在C#中,你可以用一個簡單的字符串數組表示類似的東西。

string[] listaF = new string[infoList.GetCount()]; 

祝你好運。