c++Builder和delphi读取的同一个二进制文件,结果为什么不一样?
我们调用一个dll库,里面有一个函数,需要传入(char * FrontSealcard, int flen, char * BackSealcard, int blen)进去,返回一个整型值。
FrontSealcard,BackSealcard这字符指针式两个jpg文件;flen,blen表示二进制文件的长度。
说明:
c++builder的实现方式是:利用stdio中的fopen函数,通过‘rb’只读二进制方式读取,通过fread( Bbuf, 1, sizeB, fpB )赋值给动态byte数组。然后动态byte数组直接传递给FrontSealcard或者BackSealcard字符指针。这个方法,返回值是0,是正确。
delphi实现方式是:利用TFileStream(其实内存流、文件读取我都试过了),TFileStream.ReadBuffer(Bbuf[0],sizeB)赋值给Bbuf动态byte数组。不一样的情况出现了,我直接把动态数组Bbuf传递给FrontSealcard或者BackSealcard字符指针,编译器报错。我进行转换为ppF := PChar(Fbuf);然后程序返回值永远不正常。
我试验过了多种读取jpg文件的方式,也尝试了多种转换方式。始终得不到正确的返回值。
我想问问大家,有没有什么建议。我现在真的没有招儿了。