我现在做一个Activex控件,其中函数SEH_GetFile用来获取文件流(包括纯文本文件,word文档,excel表格等二进制流)
function  TDigitalSafe.SEH_GetFile(const filename: WideString): WideString;
begin
result:=WideString(GetAnyFile(filename));
end;    其中GetAnyFile函数是自定义的函数
function GetAnyFile(const AFileName: String): String;
var
  fs: TFileStream;
begin
  Result := '';
  if not FileExists(AFileName) then Exit;
  fs := TFileStream.Create(AFileName, fmOpenRead);
  try
    SetLength(Result, fs.Size);
    fs.Read(Pointer(Result)^, fs.Size);
  finally
    fs.Free;
  end;
end;    然后在网页jsp程序中将取出的文件流进行pem编码(同delphi里encodebase64),使之成为可网络传输的流送到服务器端,服务器再pem解码,回复为二进制流,再恢复文件。对于纯文本文件,恢复的文件内容是和原有文件一致的,可是对于word等特殊格式的文档,内容就变成类似
邢 唷?                >   ?                  !           #       ??        ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????欹 9     餜                    
 bjbj
....
的样子了,我怀疑是widestring的问题,Activex控件的函数返回类型可以是string的吗?谢谢