解决方案 »

  1.   

    这问题好复杂,你不会怀疑系统DLL出了问题吧,无代码无真相
      

  2.   

    //将DER编码的证书转换成X509
    const BYTE **pp;
    PBYTE pDERCert = NULL;
    pDERCert = new BYTE[dwCertLen+1];
    memset(pDERCert, 0x00, dwCertLen+1);
    memcpy(pDERCert, pbCert, dwCertLen);
    pp = (const BYTE **)(&pDERCert);
    X509 *x = NULL;
    x = d2i_X509(NULL, pp, dwCertLen);
      

  3.   

    d2i_X509 函数的各个参数是否符合妖气
      

  4.   

    x = d2i_X509(NULL, pp, dwCertLen);这个函数的实现是怎样的?
      

  5.   

    最近刚遇到类似的问题
    总结
    1.不要频繁的使用new 和delete ,把buf定义好,不要总临时new出来。内存碎片过多,会影响dll中访问地址。
    2.如果使用了GDI或Gdi+注意操作顺序,或对象的创建位置,都会引起问题
      

  6.   

    libeay32.lib这个库,我忘了引用这个库了,
      

  7.   

    libeay32.lib这个库,我忘了引用这个库了