C#中如何调用一个这样的C++ DLL?
各位达人,小弟最近编程时要用到一用VC6写的DLL,其中有一个接口不知该如何调用,其原型如下:   
 void   WordSegment_dll(void*   pSegger,   char*   str,   char**   pWord,   int&   wordNum);   
 偶知道C#中可以将void*转化成IntPtr,char*转化成StringBuilder,int&转化成out   int。   
 ~~但是~~,char**我不会转化。:( 
 我在C#中这样对上面的char**   pWord参数处理:(这里的char**   pWord在DLL中是一个N*N的数组。)   
 ArrayList   pWord   =   new   ArrayList(N); 
 for   (int   i   =   0;   i    <   N;   i++) 
 { 
 	pWord.Add(new   char[N]); 
 }   
 然后将C#中的声明写为:   
 [DllImport( "IRLAS.dll ")] 
 public   static   extern   void   WordSegment_dll(IntPtr   pSegger,   string   line,   ArrayList   pWord,   out   int   wordNum);   
 编译可以通过,但运行时会抛出AccessViolationException异常:“受保护的内存被破坏”。   
 我觉得这样的类型转换可能有问题,但不知道应该怎么写。请达人们指教! 
 小弟跪谢!
------解决方案--------------------IntPtr pWord = new IntPtr[N]; 
 for (int i = 0; i  < len; i++) 
 { 
 pWord[i] = Marshal.AllocHGlobal (N);      
 } 
 试一试