業務上的需求要開發電子發票的模組,前同事給了Delphi 6的範例程式,經過了一番修改後,終於在 Delphi XE3能正確使用了。
主要的問題如下:
1) Char改 AnsiChar
2) PChar改 PAnsiChar
3) String 改 AnsiString
4) XE3 Length取長度時,也需要先以AnsiString才會正確。
主要加密元件宣告
[pascal]
procedure QRCodeINV(a_InvoiceNumber: AnsiString;
a_InvoiceDate: AnsiString;
a_InvoiceTime: AnsiString;
a_RandomNumber: AnsiString;
af_SalesAmount: Double;
af_TaxAmount: Double;
af_TotalAmount: Double;
a_BuyerIdentifier: AnsiString;
a_RepresentIdentifier: AnsiString;
a_SellerIdentifier: AnsiString;
a_BusinessIdenti: AnsiString;
a_AESKey: AnsiString;
a_output: pAnsiChar;
var ai_errorCode : Integer) STDCALL; external ‘QRDLL.DLL’;
[/pascal]
附上電子發票開發需要文件: