intptr[]类型吧,然后Marshal.PtrToStringAuto转字符串看看

解决方案 »

  1.   

    试试这样,可能可以int func_a(out string a,out string b); 
    int func_b(string a, string b);
      

  2.   

    [dllimport("xxx.dll")]
    private static extern int func_a(IntPtr[] a,IntPtr[] b); 然后
    string s=Marshal.PtrToStringAuto(a[0]);
    这样吧。
      

  3.   

    1.类型对照
    C语言类型(非托管)    .NET类型(托管)
    void*              System.IntPtr
    char               System.Char
    char*              System.String2.指针
    *  指针
    ** 指针的指针 二级指针3.参数修饰符
    C           C#
    in    输入             默认
    out   输出          out
    inout 输入输出     ref
    不知道你返回值的含义,代码大概思路应该是这样的:[DllImportAttribute("你的VC类库.dll")]
    public static extern int func_a(out string[] a,out string[] b);
    public static extern int func_b(string a,string b);private void button1_Click(object sender, EventArgs e)
    {
       if (func_a(out a,out b)==0);  // 一般返回值为0时,表示成功
       {
          for(int i=0;i<a.Lengh;i++)
          {
              MessageBox.Show(func_b(a[i],b[i]).ToString());
          }
       }