读取Exif数据使用CCR.Exif导致访问违规

时间:2018-04-10 01:12:45

标签: delphi jpeg exif

我有一个名为ViewPhotos的程序,在阅读Exif数据时给我带来了问题。我正在使用CCR.Exif(由Chris Rollistone提供)。 CCR.Exif不驻留在项目目录中。 为了弄清楚发生了什么,我创建了一个名为TestExif的小程序,它由一个表单和一个按钮调用下面显示的过程组成。我还复制了与ViewPhotos完全相同的程序。 TestExif使用与ViewPhotos相同的单位CCR.Exif。

procedure TForm1.Button1Click(Sender: TObject);
var
  ExifData: TExifData;
  ADate: TDateTime;
  OriginalDate: TDateTime;
  Mes: string;
begin
  ExifData := TExifData.Create;
  try
    ExifData.LoadFromGraphic('C:\000\APhotos\ADigital\2017\BlueMountains\PC090131.JPG');
    ADate := ExifData.DateTime;
    Mes := 'Date' + ' = ' + DateToStr(ADate) + #13;
    OriginalDate :=  ExifData.DateTimeOriginal;
    Mes := Mes + 'OriginalDate' + ' = ' + DateToStr(OriginalDate);
  finally
    ExifData.Free;
  end;
  ShowMessage(Mes);
end;

现在,我执行以下操作:

  1. 构建ViewPhotos。
  2. 在ViewPhotos中运行测试程序。这个 生成访问冲突。
  3. 关闭ViewPhotos并打开TestExif。
  4. 运行TestExif。这会生成访问冲突。
  5. 构建TestExif。
  6. 运行TestExif并获得预期结果。
  7. 关闭TestExif并打开ViewPhotos。
  8. 运行ViewPhotos并获得正确的结果。
  9. 如何找到问题的原因并予以纠正?我应该采取哪些步骤?

    访问违规行为是:

    enter image description here

1 个答案:

答案 0 :(得分:0)

要正确编译CCR.Exif,完整布尔评估语法选项必须保留 false (这是默认设置)