Using third-party dlls

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
morrow0233
Newbie
Newbie
Posts: 2
Joined: Wed Nov 19, 2008 5:36 pm

Using third-party dlls

Post by morrow0233 »

I am in the process of trying to port a Windows library to Linux (maybe also to Mac, but let's not get ahead of ourselves). The existing library is essentially a facade layer to a number of third-party dlls (mostly COM-based, although one is .NET-based) over which I have no control. These third-party dlls have no UI of their own. Their purpose is to allow access to proprietary data formats.

The optimal solution would be to use Wine to link to these third-party dlls in my Linux library, so that apps that use my library would not have to explicitly be run under Wine. I've read enough docs so far to understand that this is well outside the realm of current possibility.

So, what are my options here? The best I can think of so far is to have my library layer talk to a separate Windows executable designed to specifically run under Wine. The executable, in turn, will talk to the third-party dlls as necessary. The main problem here is the significant developer effort that would be required to implement the communication layer between the Linux library and the executable running under Wine.

I'm really hoping that someone who knows more about Wine can suggest a better, more integrated solution. Thanks.
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Using third-party dlls

Post by vitamin »

morrow0233 wrote:I am in the process of trying to port a Windows library to Linux (maybe also to Mac, but let's not get ahead of ourselves). The existing library is essentially a facade layer to a number of third-party dlls (mostly COM-based, although one is .NET-based) over which I have no control. These third-party dlls have no UI of their own. Their purpose is to allow access to proprietary data formats.

So, what are my options here?
Wine is not some API layer it's an environment that replicates windows (registry, kernel, file system, etc).

Because your dlls are not simple API but COM (which most likely involves OLE) the only option you have - run your program under Wine.
You can't just "magically" talk to a dll that requires huge infrastructure.

As far as your .net "dll" - if it can run under Mono that would be your best option.
morrow0233
Newbie
Newbie
Posts: 2
Joined: Wed Nov 19, 2008 5:36 pm

Post by morrow0233 »

Thanks for the quick reply.
Because your dlls are not simple API but COM (which most likely involves OLE) the only option you have - run your program under Wine.
Out of curiosity, what would my options be for simple Windows API dlls?
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Post by vitamin »

morrow0233 wrote:Thanks for the quick reply.
Because your dlls are not simple API but COM (which most likely involves OLE) the only option you have - run your program under Wine.
Out of curiosity, what would my options be for simple Windows API dlls?
As far as vanilla Wine goes, same as winelib - run under Wine.
You can look at mplayer to see an extent of Wine "modifications" they made to get it a standalone application.
Locked