"seccli.dll"说明请求交易上传结构
struct UpInfo{
        char SignId [20]; //填写“CLIENT”
        unsigned char UpSign [180];//填写数字签名结果,由银行端验证
    char XmlInfo[3800];//填写交易请求的XML报文
};int SEC_CliSign(reqbuf.XmlInfo, strlen(reqbuf.XmlInfo), reqbuf.UpSign, &nSigLen);
共4个参数:
reqbuf.XmlInfo  交易报文的XML信息
strlen(reqbuf.XmlInfo)  交易报文的长度
reqbuf.UpSign    交易报文的数字签名结构,由银行端验证合法性 out
nSigLen          签名信息长度 out/////////////////////////////////////////////////////////////////////////////////
调用C的DLL程序描述如下:[DllImport("seccli.dll",EntryPoint="SEC_CliSign")]
public static extern int SEC_CliSign(
StringBuilder XmlInfo, 
int strLen,
out StringBuilder UpSign,
out int nSigLen
);
// call(sendData为XML内容)
StringBuilder _xmlInfo = new StringBuilder(sendData);
int sendLen = _xmlInfo.Length;StringBuilder _upSign = new StringBuilder(180);
int ngLen = 180;int retId = LibWrap.SEC_CliSign(_xmlInfo, sendLen, out _upSign, out nSigLen);编译没有问题,就是运行中出现“未将对象引用设置到对象的实例“。不知道大家遇到过这种没有,这种做法正确吗?急需帮助!!!!

解决方案 »

  1.   

    public static extern int SEC_CliSign(
    StringBuilder XmlInfo, 
    int strLen,
    StringBuilder UpSign,
    ref int nSigLen
    );
      

  2.   

    ..你用NEW来引用对像了吗?
    比如说一个自己写的类test
    那么引用时就有
    test 自定义对像 =new text
    然后再用自定义对像来操作函数.
    自定义对像.函数()
    我对C++不是很懂!目前在学的是C#不过也应当差不多!
      

  3.   

    根据以上修改代码为:// call
    int retId = LibWrap.SEC_CliSign(_xmlInfo, sendLen, _upSign, ref nSigLen);还是报相同的错误
    System.ApplicationException: 未将对象引用设置到对象的实例。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。请注意四个参数的类型,其中UpSign是unsigned char UpSign [180]类型。
    XmlInfo是char XmlInfo[3800]类型。