FpGetEnrollData方法的参数中也是ref吗

解决方案 »

  1.   

    数组不能ByRef传递,数组都是引用类型,按Ref传递没有意义。请不要用ref
      

  2.   

    他提示什么错误啊?你在c#中的int类型和long不是一中类型啊,是不是类型弄错了?函数原形是什么?能否告知一下?
      

  3.   

    VB中LONG型和C#中INT都是4字节的
      

  4.   

    使用的是一个控件,不传REF编译都通不过
      

  5.   

    从对象浏览器中查看如下:
    FpGetEnrollData(ref int,ref int)public virtual new System.Boolean FpGetEnrollData ( System.Int32 fpData , System.Int32 fpSize )
        AxPIS2003Lib.AxPIS2003 的成员
      

  6.   

    TO Ninputer(装配脑袋) 
    不能去掉ref关键字,原因见上
      

  7.   

    //定义录入所需数组变量
    int[] fpData = new int[500];
    int[] fpSize = new int[1];

    try
    {
    //采集完毕,开始录入指纹库
    if (e.enrolledID == "")
    {
    try
    {
    PIS2003.FpGetEnrollData(ref fpData[0],ref fpSize[0]);
    }
    catch (Exception err)
    {
    MessageBox.Show(err.Message);
    }
    PIS2003.FpSetMatchData(ref fpData[0],fpSize[0]);
    }
    //重新初始化
    PIS2003.FpEraseImage();
    PIS2003.EnrollRequired = false;
    }
    catch (Exception err)
    {
    MessageBox.Show("录入失败!原因:"+err.Message);
    return;
    }
    /////////////////////////////////////////////////////////
    就这样也捕获不到错误,程序直接退出。VC、VB中均可通过
      

  8.   

    这里可能是个传递指针的数组,COM Interop没有识别出来。你无法不用ref,因此你需要一点技巧,将数组的指针直接传递过去。