How to make EXE use .so with same API as .dll?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
Marty
Newbie
Newbie
Posts: 1
Joined: Wed Apr 09, 2014 9:03 am

How to make EXE use .so with same API as .dll?

Post by Marty »

I want to make it possible to use TiePie Multi Channel oscilloscope software (http://www.tiepie.com/software/MultiChannel) under Linux. For newer instruments, under the hood it uses LibTiePie.dll (http://www.tiepie.com/LibTiePie). Versions of this library for Linux are also available (as .so files).

I want the application to use libtiepie.so instead of libtiepie.dll so it can access the hardware on Linux. Calling conventions of both libraries are the same (cdecl) and only routines that are present in both are used. Therefore I think it should be possible for Wine to intercept the loadlibrary calls and return pointers to routines loaded from the .so file. However, when I exchange the .dll with the .so, the application won't open it. I have tried static as well as dynamic loading, but so far I did not succeed.

Can anyone suggest a way to get the .exe to use a .so instead of the expected .dll, or another solution?
User avatar
olivierfrdierick
Level 5
Level 5
Posts: 258
Joined: Thu Sep 13, 2012 12:09 pm

Re: How to make EXE use .so with same API as .dll?

Post by olivierfrdierick »

I have no idea if it's possible, but here's what I would try:

There is a directory where WINE's builtin DLL are located.
You may try to symlink (or copy) your libtiepie.so file into it.

Code: Select all

sudo ln -s ~/libtiepie.so /usr/lib/i386-linux-gnu/wine/libtiepie.dll.so
(adapt paths to your config)

Then in the Library tab of winecfg, see if you can add a DLL override for libtiepie to "builtin".
Note that the architecture of libtiepie.so and WINE would have to match.
Locked