I really want to have some way to communicate between a Linux program and a Windows program running under WINE. The connection doesn't need to be high speed, a stream is fine - I'm just sending some unicode text. I'm writing both programs myself, so I can implement this in the easiest way, though if there was some way to create and call a Windows COM object from Linux, that would be the most direct solution...
But reading what I can about WINE, I'm guessing that the only easy thing to do is to write a Windows server application with winegcc and either connect to it through a socket - or to have it spawn a Linux application that it has a stream to. But I need some sample code to know how to do this, since I don't have too much time to experiment.
Just to make it clear why I'm doing this - I have some wonderful TTS voices (Neospeech's SAPI5 Japanese voices) installed in WINE and I need to be able to invoke them from a Linux program.
Thanks in advance for any pointers,
Joshua Scholar
Hello Joshua,
Joshua Scholar schreef:
I really want to have some way to communicate between a Linux program and a Windows program running under WINE. The connection doesn't need to be high speed, a stream is fine - I'm just sending some unicode text. I'm writing both programs myself, so I can implement this in the easiest way, though if there was some way to create and call a Windows COM object from Linux, that would be the most direct solution...
But reading what I can about WINE, I'm guessing that the only easy thing to do is to write a Windows server application with winegcc and either connect to it through a socket - or to have it spawn a Linux application that it has a stream to. But I need some sample code to know how to do this, since I don't have too much time to experiment.
This comes up from time to time, the solution is always compile a winelib app with winegcc then use sockets or something to communicate. In your server app you can use windows and linux code mixed together.
Regards, Maarten.
OK. I need to access COM to do this, and I notice that in "What it WINELIB" it says "Also missing are some of the more exotic features of Microsoft's compiler like native COM support".
I'm hoping that "native COM support" just means some new fancy add-on that wasn't in Visual Studio 6.0, and that I still do COM, but will have to find old C and IDL examples from Petzold or something like that.
Is that correct?
Unfortunately, I've never really understood COM very well. Is there an IDL compiler for WINE? I know I need that much.
Josh Scholar
On 11/5/07, Maarten Lankhorst m.b.lankhorst@gmail.com wrote:
Hello Joshua,
Joshua Scholar schreef:
I really want to have some way to communicate between a Linux program
and
a Windows program running under WINE. The connection doesn't need to be high speed, a stream is fine - I'm just sending some unicode text. I'm writing both programs myself, so I can implement this in the easiest
way,
though if there was some way to create and call a Windows COM object
from
Linux, that would be the most direct solution...
But reading what I can about WINE, I'm guessing that the only easy thing to do is to write a Windows server application with winegcc and either connect to it through a socket - or to have it spawn a Linux application that it has a stream to. But I need some sample code to know how to do this, since I don't have too much time to experiment.
This comes up from time to time, the solution is always compile a winelib app with winegcc then use sockets or something to communicate. In your server app you can use windows and linux code mixed together.
Regards, Maarten.
Hi Josh,
(please bottom-post on this list.)
OK. I need to access COM to do this...
I don't know why you need COM to do this. If you're writing the app yourself, why not just use a socket?
Unfortunately, I've never really understood COM very well. Is there an IDL compiler for WINE? I know I need that much.
If you insist on using COM, yes, there's widl. --Juan
On Mon, 5 Nov 2007, Josh Scholar wrote: [...]
OK. I need to access COM to do this, and I notice that in "What it WINELIB" it says "Also missing are some of the more exotic features of Microsoft's compiler like native COM support".
What won't work is if you're using statements such as '#import' in your C files. See http://support.microsoft.com/kb/317217 for a sample of this type of construct. This was present in Visual C++ 6 already.
As long as you stick to standard C code you should be fine.
This comes up from time to time, the solution is always compile a winelib app with winegcc then use sockets or something to communicate. In your server app you can use windows and linux code mixed together.
If you don't need to use linux APIs in your windows application you can also make a normal windows executable with a windows compiler of your choice. So winegcc/winelib is not a requirement for this style of client/server solution. (You could use winsock to communicate over tcp with the linux application.)
Jan