Delphi7でEPSON OPOS ADK を使用するには?

解決


kk  2007-11-14 06:55:07  No: 28408

Delphi7を使用してPOSアプリを作成しようとしています。
EPSON OPOS ADK をダウンロードし、Dlphi7に取り込もうとしていますが、取り込み時に再構築が行われそのときに、
//--------------------------------------------------------
function  TOPOSCashDrawer.CompareFirmwareVersion(const FirmwareFileName: WideString; 
                                                 var Result: Integer): Integer;
begin
  Result := DefaultInterface.CompareFirmwareVersion(FirmwareFileName, Result);
end;
//--------------------------------------------------------
のところで、
[エラー] COCASHLib_TLB.pas(344): 識別子の多重定義 : 'Result'
[致命的エラー] EpsonOPOS.dpk(35): '..\Imports\COCASHLib_TLB.pas' ユニットはコンパイルできませんでした
となってしまいます。
上記の部分を
//--------------------------------------------------------
function  TOPOSCashDrawer.CompareFirmwareVersion(const FirmwareFileName: WideString): Integer;
begin
  Result := DefaultInterface.CompareFirmwareVersion(FirmwareFileName);
end;
//--------------------------------------------------------
のようにしたらコンパイルが通り、取り込みもできたようですが果たしてこのような方法でよいのか分かりません。
どなたかお分かりの方いらっしゃいましたらご教授願います。

Delphi7+WindowsXP SP2


うんと  2007-11-14 07:20:11  No: 28409

Result がかぶってるんでしょう。

COCASHLib_TLB.pas  の宣言部と実装部の

var Result: Integer

var iResult: Integer

とかに書き換えるといいのでは。


HOta  2007-11-14 16:26:12  No: 28410

ResultはDelphiでは予約語で、関数の戻り値になっています。
別に定義すると、多重定義という事になります。


KHE00221  2007-11-14 16:42:50  No: 28411

Result := DefaultInterface.CompareFirmwareVersion(FirmwareFileName, Result);

の  Result);  も iResult にするのを忘れずに

Result := DefaultInterface.CompareFirmwareVersion(FirmwareFileName, 
Result);

この両方の Result の返り値の意味がわかりませんが

おそらく

Result := は CompareFirmwareVersion は関数自体が成功したかどうか?(エラー判定)
Result    は CompareFirmwareVersion の返り値

もしく

Result := は使用していないかも知れません。


kk  2007-11-14 22:55:48  No: 28412

うんとさん、HOtaさん、KHE00221さん、すばやいご対応ありがとうございます。
ResultをiResultとして試してみます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加