古い Delphi アプリケーション (Borland Delphi 6 でビルド) をバージョン 13 の Crystal レポートに移行したいと考えていました。SAP が投稿した do-it- yourselfガイドに記載されている手順を使用する前に、バージョン 10.2 にアップグレードされていました。
同じ変更を再度コミットし、10.2 レジストリ キーから 13 レジストリ キーを指し、VCL のバージョン チェックを更新しました。VCL コンポーネントは CRPE32.dll を適切な場所から正常にプルするようになりましたが、pvlocal-1-0.dll や local_fallback-4-0.dll などの関連する Dll ファイルを見つけることができません。すべての Dll をアプリケーションと同じフォルダに移動すると、それらは見つかりますが、16 個すべての Dll とライセンス ファイルをアプリケーションと一緒にパックする必要があるかどうかわかりません。
問題を次のメソッドのLoadLibrary呼び出しに絞り込みました。残念ながら、この問題を解決する方法に関する情報を見つけることができず、コミュニティがそれを修正する方法を知っていることを望んでいました:
function TCrpeEngine.PELoadCrpeDll(const CrpeLocation: string) : Bool;
var
s1,s2 : string;
begin
Result := False;
s1 := Trim(CrpeLocation);
CRDEngine := LoadLibrary(PChar(s1));
{If an error occured, set the flag}
if (CRDEngine < HINSTANCE_ERROR) then
begin
CRDEngine := 0;
s2 := SysErrorMessage(GetLastError);
if Trim(s2) = '' then
s1 := CRD_ERROR_LOADING + Chr(10) + 'Windows Error Number: ' + IntToStr(GetLastError)
else
s1 := CRD_ERROR_LOADING + Chr(10) +
'Windows Error Number: ' + IntToStr(GetLastError) + ' - ' + Trim(s2);
CRDEngineError(s1);
end
else
Result := True;
end;