我发现了一个PDF文档,其中反序列化方法被限定为一个字节数组。FingerBuffer是一个pansichar,它是一个字节数组。但是,然后将其转换为一个字符串,该字符串将自动转换为一个olestring(当您将一个字符串赋给olevariant时,delphi将它转换为一个olestring)。所以你再也没有字节数组了。
您可以尝试做什么(我不保证:):
var
lByteArray: Variant;
lArrayPointer: Pointer;
lStr: AnsiString;
DPFPTemplate: TDPFPTemplate;
begin
lStr := AUserFinREcPtr.FingerBuffer;
lByteArray := VarArrayCreate([0, Length(lStr) - 1], varByte );
lArrayPointer:= VarArrayLock(lByteArray);
try
Move( lStr[1], lArrayPointer^, Length(lStr) );
finally
VarArrayUnlock(lByteArray);
end;
DPFPTemplate := TDPFPTemplate.Create(nil);
DPFPTemplate.DefaultInterface.Deserialize(lByteArray);