把 der_pkcs10Size^ 改成 der_pkcs10Size,去掉“^”

解决方案 »

  1.   

    不行啊,der_pkcs10Size是个PInteger类型的变量,去掉“^”的话编译器就会报错了,提示Incompatible types!!!
      

  2.   

    把 der_pkcs10Size^ 改成 der_pkcs10Size[0]
    assignfile(tempfile,'der_pkcs10.cer');
      der_pkcs10Size:=得到文件长度;
      reset(tempfile,der_pkcs10Size);
      strnew(der_pkcs10,der_pkcs10Size);
      blockread(tempfile,der_pkcs10,1);
      strdispose(der_pkcs10,der_pkcs10Size);
      closefile(tempfile);
      

  3.   

    example
    var p:pchar;
        f:file ;
        len:integer;
    begin
       p:='12345';
       assignfile(f,'c:\test.dat');
       rewrite(f,1);
       blockwrite(f,p^,strlen(p));
       closefile(f);
       assignfile(f,'c:\test.dat');
       reset(f,1);
       len:=filesize(f);
       p:=StrAlloc(len+1);
       blockread(f,p^,len);
       p[len]:=#0;
       closefile(f);
       strdispose(p);end;
    //p^=p[0]
      

  4.   

    谢谢zjqyb,你的两个回复都是说读取文件,但是第一个里面提到的“把 der_pkcs10Size^ 改成 der_pkcs10Size[0]”是说写文件时要改的吗?der_pkcs10Size是PInteger,但是der_pkcs10Size[0]是char类型的,编译器还是会说类型不匹配啊
      

  5.   

    OK,使用zjqyb给的example已经可以成功读写二进制文件,谢谢你的帮助。不过我对你的第一个回复仍不理解,“把 der_pkcs10Size^ 改成 der_pkcs10Size[0]”是什么意思?还有strnew函数只能带一个参数啊!!
      

  6.   

    der_pkcs10Size^ =der_pkcs10Size[0]