[C/C++代碼]字符串數組時,從C/C++
extern "C" __declspec(dllexport) int Analyze_input_text(char* input_text, char *ppArray){
int size;
// code...
return size;
}
[C#代碼]
[DllImport("PP_TextAnalyzer.dll",CallingConvention = CallingConvention.Cdecl, CharSet=CharSet.Unicode)]
extern public static int Analyze_input_text(IntPtr data, [MarshalAs(UnmanagedType.LPArray, SizeConst = 100)] string[] ppArray);
public int GetResultData(string input_text)
{
IntPtr pStr = Marshal.StringToCoTaskMemUni(input_text);
List<string> ppArray = new List<string>();
int size = **Analyze_input_text(pStr,ppArray.ToArray());** //Array(List) is still null.
return size;
}
C#dllimport的,我不知道怎麼了解決這個問題?
任何幫助?
ppArray參數的合約是什麼?誰負責分配?解放它?如果它是char *,它不是* char *的數組。 –