其實我正在使用C#中的C++的dll如下如何知道在C傳遞一個數組的大小++的dll到C#
我的C++代碼
extern "C" __declspec(dllexport)
char** __stdcall hh()
{
static char* myArray[3] = {"A1", "BB2", "CC3",};
return myArray;
}
我的C#代碼
[DllImport(@"ourdll.dll",CharSet = CharSet.Ansi,CallingConvention = CallingConvention.StdCall)]
public static extern IntPtr hh();
static void Main(string[] args)
{
IntPtr a = hh();
int j = 0;
string[] s=new string[100]; //I want this to be dynamic
do
{
s[j] = Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(a,4*j));
j++;
}
while(s[j-1] != null);
}
我無法獲得由hh()返回的數組的大小;我怎樣才能獲得數組的大小,以便我的代碼行
串[] S =新的字符串[100]; 更改 串[] S =新的字符串[陣列的實際長度]。
可能的重複[如何從C中的指針獲取數組的大小?](http://stackoverflow.com/questions/232691/how-can-i-get-the-size-of-一個陣列-從-A-指針在-C) – 2012-04-11 07:09:39