From 053bd1fdc72f7675c420781867c8b395792a4a35 Mon Sep 17 00:00:00 2001 From: Miroslav Kundela Date: Fri, 28 Feb 2020 21:21:44 +0100 Subject: [PATCH] Donation --- README.md | 82 +--------------------------------------------- img/QR_paypal.png | Bin 0 -> 10342 bytes 2 files changed, 1 insertion(+), 81 deletions(-) create mode 100644 img/QR_paypal.png diff --git a/README.md b/README.md index 8c2c089..dd4c37c 100644 --- a/README.md +++ b/README.md @@ -1,81 +1 @@ -# DelphiEET -Delphi component for registered sale data messages. http://www.etrzby.cz - -- this library may be compiled with - * Delphi 7 (Indy10, SecureBridge, Synapse) - * Delphi 2007 (Indy10, SecureBridge, Synapse) - * Delphi 10.2 Tokio (Indy10, WinInet, SecureBridge, Synapse) - * Delphi 10.3 Rio (Indy10, Net.HttpClient, SecureBridge, Synapse) - - -## Use with USE_LIBEET -Demo need library. - -``` -libeetsigner.dll # source at : https://github.com/mirus77/libeet - - needed installed Visual C++ Redistributable Packages for Visual Studio 2013 -openssl 1.0.x (libeay32.dll, ssleay32.dll) libs for Indy, Synapse Https communication - - can be used openssl lib from https://indy.fulgan.com/SSL/ or from project bin directory -``` -Delphi project Options for demo TestEET.dpr with USE_LIBEET - -``` - Delphi Compiler Options -> Conditional Defines : - USE_LIBEET - use wrapper libeetsigner.dll - static compiled into one library (libxml2, xmlsec, openssl) - compiled with Visual Studio 2013 U5 Express - VC12 (VS Runtime 2013) needed MSVCR120.dll - USE_VS_LIBS - use libxml2 and xmlsec compiled with Visual Studio - solution for time_t compatibility - VS 2013 and lower using MSVCRxxx.dll - VS 2015 and higher VCRUNTIME140.dll (ucrtbase.dll) - - Select EETHttpClient directives : - USE_SYNAPSE_CLIENT - use Synapse library for HTTP Post (WinXP and higher) - or USE_SBRIDGE_CLIENT - use SecureBridge components from www.devart.com for HTTP Post (WinXP and higher) - or USE_INDY_CLIENT - use Indy 10 components for HTTP Post (WinXP and higher) - or USE_NETHTTP_CLIENT - use Net.HttpClient with Delphi XE8 and higher for HTTP Post (multiplatform) - - Delphi Compiler Options -> Output Directory: ..\..\bin - Delphi Compiler Options -> Search Path: - ..\..\source\databinding;..\..\source\eet; - ..\..\source\xmlsec;..\..\source\vcruntime;..\..\source\httpclient - Delphi Compiler Options -> Unit Output Directory: .\dcu -``` - - -## Use without USE_LIBEET -Demo need library. -``` -Self compiled libXML, XMLSEC with Visual Studio (build scripts at https://github.com/mirus77/build_xmlsoft). -``` - -``` -libeay32.dll -libexslt.dll -libiconv.dll -libxml2.dll -libxmlsec-openssl.dll -libxmlsec.dll -libxslt.dll -openssl.exe (for testing) -ssleay32.dll -xmlsec.exe (for testing) -``` - -Delphi project Options for demo TestEET.dpr - -``` - Delphi Compiler Options -> Conditional Defines : - USE_VS_LIBS - use libeetsigner.dll in debug mode - - Select EETHttpClient directives : - USE_SYNAPSE_CLIENT - use Synapse library for HTTP Post (WinXP and higher) - or USE_SBRIDGE_CLIENT - use SecureBridge components from www.devart.com for HTTP Post (WinXP and higher) - or USE_INDY_CLIENT - use Indy 10 components for HTTP Post (WinXP and higher) - or USE_NETHTTP_CLIENT - use Net.HttpClient with Delphi XE8 and higher for HTTP Post (multiplatform) - - Delphi Compiler Options -> Output Directory: ..\..\bin - Delphi Compiler Options -> Search Path: - ..\..\source\databinding;..\..\source\eet; - ..\..\source\vcruntime;..\..\source\httpclient - Delphi Compiler Options -> Unit Output Directory: .\dcu -``` +# DelphiEET Delphi component for registered sale data messages. http://www.etrzby.cz - this library may be compiled with * Delphi 7 (Indy10, SecureBridge, Synapse) * Delphi 2007 (Indy10, SecureBridge, Synapse) * Delphi 10.2 Tokio (Indy10, WinInet, SecureBridge, Synapse) * Delphi 10.3 Rio (Indy10, Net.HttpClient, SecureBridge, Synapse) ## Use with USE_LIBEET Demo need library. ``` libeetsigner.dll # source at : https://github.com/mirus77/libeet - needed installed Visual C++ Redistributable Packages for Visual Studio 2013 openssl 1.0.x (libeay32.dll, ssleay32.dll) libs for Indy, Synapse Https communication - can be used openssl lib from https://indy.fulgan.com/SSL/ or from project bin directory ``` Delphi project Options for demo TestEET.dpr with USE_LIBEET ``` Delphi Compiler Options -> Conditional Defines : USE_LIBEET - use wrapper libeetsigner.dll - static compiled into one library (libxml2, xmlsec, openssl) compiled with Visual Studio 2013 U5 Express - VC12 (VS Runtime 2013) needed MSVCR120.dll USE_VS_LIBS - use libxml2 and xmlsec compiled with Visual Studio solution for time_t compatibility VS 2013 and lower using MSVCRxxx.dll VS 2015 and higher VCRUNTIME140.dll (ucrtbase.dll) Select EETHttpClient directives : USE_SYNAPSE_CLIENT - use Synapse library for HTTP Post (WinXP and higher) or USE_SBRIDGE_CLIENT - use SecureBridge components from www.devart.com for HTTP Post (WinXP and higher) or USE_INDY_CLIENT - use Indy 10 components for HTTP Post (WinXP and higher) or USE_NETHTTP_CLIENT - use Net.HttpClient with Delphi XE8 and higher for HTTP Post (multiplatform) Delphi Compiler Options -> Output Directory: ..\..\bin Delphi Compiler Options -> Search Path: ..\..\source\databinding;..\..\source\eet; ..\..\source\xmlsec;..\..\source\vcruntime;..\..\source\httpclient Delphi Compiler Options -> Unit Output Directory: .\dcu ``` ## Use without USE_LIBEET Demo need library. ``` Self compiled libXML, XMLSEC with Visual Studio (build scripts at https://github.com/mirus77/build_xmlsoft). ``` ``` libeay32.dll libexslt.dll libiconv.dll libxml2.dll libxmlsec-openssl.dll libxmlsec.dll libxslt.dll openssl.exe (for testing) ssleay32.dll xmlsec.exe (for testing) ``` Delphi project Options for demo TestEET.dpr ``` Delphi Compiler Options -> Conditional Defines : USE_VS_LIBS - use libeetsigner.dll in debug mode Select EETHttpClient directives : USE_SYNAPSE_CLIENT - use Synapse library for HTTP Post (WinXP and higher) or USE_SBRIDGE_CLIENT - use SecureBridge components from www.devart.com for HTTP Post (WinXP and higher) or USE_INDY_CLIENT - use Indy 10 components for HTTP Post (WinXP and higher) or USE_NETHTTP_CLIENT - use Net.HttpClient with Delphi XE8 and higher for HTTP Post (multiplatform) Delphi Compiler Options -> Output Directory: ..\..\bin Delphi Compiler Options -> Search Path: ..\..\source\databinding;..\..\source\eet; ..\..\source\vcruntime;..\..\source\httpclient Delphi Compiler Options -> Unit Output Directory: .\dcu ``` ## Donation If this project helps you shorten development time, you can give me a donation :) | PayPal button | PayPal QR Code | | --------------- | ----------------- | | [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=V8LPMXJDTCUCE¤cy_code=CZK&source=url) | ![PayPal](https://github.com/mirus77/img/QR_paypal.png) | \ No newline at end of file diff --git a/img/QR_paypal.png b/img/QR_paypal.png new file mode 100644 index 0000000000000000000000000000000000000000..3b773c5601c0c5731a8b61f3e20a8b160e498593 GIT binary patch literal 10342 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 literal 0 HcmV?d00001