DWORD dwfilelen;//是一个数字证书的长度if(BJAPI_ReadCerti_DLL(&ucCerti[0],dwfilelen)==RT_READ_CERTI_OK_M100)
  {
  j=0;
              for(i=0;i<dwfilelen;i++)
  {
              if(ucCerti[i]!=j)
   {
                break;
   };
                j++;
  }
   if(i<dwfilelen)
   {
   m_status.SetWindowText("fail");
   }
   else
   {
   m_status.SetWindowText("seccuss");
   unsigned char buf[64*1024];
   char *p;
   p=new char [dwfilelen+1];    memset(buf,0xff,sizeof(buf));
   memcpy(buf,&dwfilelen,dwfilelen);           FILE *Stream;
                 if(Stream=fopen("c:\\temp.txt","wb"))
 {
              fwrite(buf,sizeof(dwfilelen),1,Stream);
                      fclose(Stream);
 }
   }
 }
   else 
   {
   m_status.SetWindowText("fail");
   }
  
  }把数字证书导出并保存,要如何做?

解决方案 »

  1.   

    我猜应该是这样:
    FILE *Stream = NULL; 
    if(Stream = fopen("c:\\temp.txt","a"))
    {
      ucCerti[dwfilelen] = 0;
      fprintf(Stream ,"%s\n", ucCerti);
      fclose(Stream);
    }
      

  2.   

    你调试一下看看啊!Stream是否为空?ucCerti中是否有内容?
      

  3.   

    这个读取有问题吗?
     CFile file("c:\\text.txt",CFile::modeRead); 
               char *p; 
               DWORD dwfilelen; 
               dwfilelen=file.GetLength(); 
               p=new char[dwfilelen+1]; 
               p[dwfilelen]=0; 
               file.Read(p,dwfilelen); 
               file.Close();    for(i=0;i<64*1024;i++)
      {
             pcer[i]=i;
      }
      if(BJAPI_SaveCerti_DLL(&pcer[0],dwfilelen)==RT_SAVE_CERTI_OK_M100)
      {
                  m_status.SetWindowText("success!");
      

  4.   

    似乎没问题,什么是空?BJAPI_SaveCerti_DLL执行成功了吗?
      

  5.   

     DWORD dwfilelen;
       FILE * fp;
       unsigned char buf[64*1024];
             if(fp=fopen("c:\\text.txt","rb"))
     {
               fread(&dwfilelen,1,1,fp);
               fread(buf,dwfilelen,1,fp);
               fclose(fp);
    如果用这个的话,可以读到文件,但是导出还是有问题