Menu

#3 Deplhi can not load the new wincard.dll.so

1.0
open
nobody
None
2016-04-28
2016-04-26
Peter Szili
No

Hi

I using Scard4Wine patch on Suse Leap 42.1 x64 and Ubuntu 16.04 desktop x86, and my Delphi 7 application, with wine.
( This is test sample program, which tests the smart card reader)
Each of the two systems is the same problem:
Delphi LoadLibrary() function can not load the winscard.dll.
The patch replaces the under linux the /usr/lib/wine/winscard.dll.so
With original DLL can load the LoadLibrary().

Can someone idea of how the new winscard.dll.so could be used ?

best regards Peter Szili

1 Attachments

Discussion

  • Mounir IDRASSI

    Mounir IDRASSI - 2016-04-26

    Hi,

    Thank you for the report. I was able to reproduce the "Invalid floating point operation" error using your test application.
    Using another application of my own, I don't have this floating point error but it can not communication with PCSC, so the result is the same.

    My first opinion is that it is due to incompatibility between shared libraries compiled using gcc-5 and those compiled using gcc-4.
    The Scard4Wine libraries that I distribute are built using gcc-4 whereas Ubuntu 16.04 uses gcc-5.

    One possible solution is to build scard4wine using gcc-5 and do the test again.

    For now, I don't have the wine build environment and I'm not sure when I can have time to do the build. I will let you anyway.

    PS: it is better to use the installation script provided by scard4wine archive instead of copying manually. This is because recent Linux distributions use new locations instead of the traditional ones in order to support multi-architecture feature.
    So, remove the files that you copied manually and then run the script install.sh.

     
  • Peter Szili

    Peter Szili - 2016-04-28

    Hi
    thanks for your reply.
    I remake wine with your winscard.c with Suse 13.2 x86, but the same error. I tried the sample code rewrite implicit format. ( LoadLibrary instead of ...stdcall; external 'pcscard.dll'; )
    At this time, the situation was better.
    The program recognizes the card reader, it detects the card (exists or no), but I call the "SCardConnectA" function the error occurs. Delphi say : Invalid floating point operation.

    is this any ideas? It may be able to operate in C ?

    Unfortunately, the C should not know, but I wrote some function to the firebird.

    PS: sorry my english

     

Log in to post a comment.