C 编写的seccli.dll函数如下:int SEC_CliSign(unsigned char UpSign [180]);在C#中如何调用?我以StringBuilder进行参数调用,报以下错误。未将对象引用设置到对象的实例。问题非常急,在线等待!

解决方案 »

  1.   

    stringbuilder
    你先实例化下
    str=new StringBuilder();
      

  2.   

    [DllImport("seccli.dll")]
    int SEC_CliSign(
    [MarshalAs(UnmanagedType.ByValArray, SizeConst=180)]
    byte[] UpSign
    );
      

  3.   

    [DllImport("seccli.dll")]
    public static extern int SEC_CliSign(
    [MarshalAs(UnmanagedType.ByValArray, SizeConst=180)]
    byte[] UpSign
    );
      

  4.   

    StringBuilder使用前我已经实例化啦。另外该参数是int SEC_CliSign(out unsigned char UpSign [180]);!!1
      

  5.   

    Have a try![DllImport("seccli.dll")]
    public static extern int SEC_CliSign(
    [Out, MarshalAs(UnmanagedType.LPArray, SizeConst=180)]
    byte[] UpSign );//Call 
    byte[] bytUpSign = new byte[180];
    SEC_CliSign( bytUpSign );
      

  6.   

    int SEC_CliSign(char XmlInfo[3800], strlen(XmlInfo), unsigned char UpSign [180], &nSigLen)strlen(XmlInfo)表示XmlInfo长度;
    nSigLen 表示UpSign长度.如何申明、调用!!!!
      

  7.   

    后面两个参数都是 out!
    前面两个是 in