Question about IPC between WINE and other processes

dd jj xmen21cn at yahoo.com
Fri Jul 11 16:42:10 CDT 2003


Hello Roderick,
 
I have nother question about the usage of dll:
 
Can I use visual studio in windows to generate a windows dll to implement all the functionalities I need, then transfer it directly to linux using under WINE?
 
Maybe it can't work for IPC stuffs discussed before, right?
 
Many thanks
 
-Lechun

Roderick Colenbrander <thunderbird2k at gmx.net> wrote:
What Mike meant is the same as I said. Look at the winelib docs at the wine 
page. I'm not sure if they are up2date. A new but easier way to use winelib 
is to use "winegcc" a frontend to gcc which handles all difficult wine 
linking stuff. The syntax is similar to gcc and it supports various mingw 
options.

All dlls wine uses are winelib dlls. It are linux libraries but with a similar 
structure as native windows dlls. Because of this structure you can easily 
replace a native dll of your app with a winelib dll.

The advantage of winelib is that you can use all libraries you have on windows 
and all you have on windows.

So I would move the linux functionality you need inside a winelib dll. Using 
this way you don't need to recompile all the source of your app using winelib 
which can be a pain. This way is used by lots of companies since it is easy 
and gives good performance.

I hope this helps and good luck,
Roderick


On Friday 11 July 2003 18:44, you wrote:
> Hello Roderick,
>
> Thank you for your answering.
> Actually, now I am trying to use WINE to port an windows application to
> linux. But if I use program loader provided by WINE to directly run the exe
> file under linux, some of the functionalities are involved with IPC between
> WINE and other local X processes, which is not supported by WINE.
>
> So, I need to rewrite the local codes for them, as Mike explained before,
>
> "What you can do is rewrite only the parts that need rewriting and turn
> them into shared libraries. Then you can use WineLib to combine the
> Win32 code and the Linux code into one program."
>
> Here, I am glad to learn from you there seems a more easy way:
> (As my understanding, the other way you mentioned is the same one as
> Mike's)
>
> "An easy way is to put this
> X functionality in a winelib dll. This dll can then be used by your app.
> The advantage of a winelib dll is that it can use win32 api's but also
> native Linux api's."
>
> Could you please make sure whether this method can meet the need to "find
> any process's window info", not only "windows under WINE" ?
>
> And could you please give some more implementation details about that?
>
> Thanks a lot!
>
> -Lechun
>
> Roderick Colenbrander wrote:
> Hi,
>
> As I understand it you have a Windows app that needs to have access to some
> X stuff. To access that you somehow need to extend your app with some X
> functionality. There are several ways to do that. An easy way is to put
> this X functionality in a winelib dll. This dll can then be used by your
> app. The advantage of a winelib dll is that it can use win32 api's but also
> native Linux api's. The other option is to completely build your app using
> winelib and also add the native code. Personally I think the dll is the
> easiest way.
>
> Roderick
>
> On Thursday 10 July 2003 23:36, dd jj wrote:
> > Hello Mike,
> >
> > So as my understanding, even recompile the original windows codes using
> > WINELIB will not work, am I correct?
> >
> > Since finding window info under cursor is only one of the functionality
> > in this application, it will be a huge work to rewrite all the codes for
> > X window. Is there any Avenue to port such a windows application to
> > Linux? Using Visual Mainwin or Win/U is better choices? or any other
> > comments on it?
> >
> > Thanks a lot!
> >
> > -Lechun
> >
> > Mike Hearn wrote:
> > Programs run under emulation are only aware of other Wine programs. If
> > you want to write an app like that, you'd need to rewrite it for Linux.
> >
> > BTW, you might want to talk to a guy named Bill Haneman (i think that's
> > the spelling). He does Gnome accessibility, and i think they have an app
> > that can read info about stuff under the mouse cursor.
> >
> > On Thu, 2003-07-10 at 20:41, dd jj wrote:
> > > Thank you for response. The following is my further question:
> > >
> > > Here is my case:
> > >
> > > Now I am trying to run our own developed application under wine, the
> > > original function of this app is working as a background daemon
> > > without GUI who is trying to figure out some window information under
> > > the current cursor, such as the window title, class name using
> > > GetWindowTitle, GetClassName ... WIN32 API calls.
> > >
> > > When I run this under WINE, it can't "see" any other Local X
> > > application windows such as Xterm, Xclock... which don't run under
> > > WINE.
> > >
> > >
> > > I am wondering whether I can recompile the codes to generate a lcoal X
> > > application using winelib to solve this problem, or I must write X11
> > > based codes?
> > >
> > > Thanks a lot!
> > >
> > > -Lechun
> > >
> > > Mike Hearn wrote:
> > > > fixme:class:get_class_ptr reading from class of other
> > >
> > > process window
> > >
> > > > 0x2002a
> > > > err:win:WIN_FindWndPtr window 0x2003a belongs to other
> > >
> > > process
> > >
> > > Well these two are known problems. I think it's something
> > > Alexandre will
> > > be working on at some point, inter-process window
> > > communication isn't
> > > really implemented well in Wine at present.
> > >
> > > > Also I found other errors when I launch my window appication
> > >
> > > under
> > >
> > > > wine:
> > > >
> > > > err:module:import_dll No implementation for
> > >
> > > USER32.dll.GetTitleBarInfo
> > >
> > > > imported from C:\ping\exe\ping.exe, setting to 0xdeadbeef
> > > > err:module:import_dll No implementation for
> > >
> > > USER32.dll.GetMenuBarInfo
> > >
> > > > imported from C:\ping\exe\ping.exe, setting to 0xdeadbeef
> > >
> > > Unless the program actually uses them, this isn't a problem.
> > > If it does,
> > > the app will crash, at which point we'd need to write those
> > > functions or
> > > stub them out.
> > >
> > > thanks -mike
> > >
> > >
> > > ______________________________________________________________________
> > > Do you Yahoo!?
> > > SBC Yahoo! DSL - Now only $29.95 per month!
> >
> > ---------------------------------
> > Do you Yahoo!?
> > SBC Yahoo! DSL - Now only $29.95 per month!
>
> ---------------------------------
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!




---------------------------------
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winehq.org/pipermail/wine-devel/attachments/20030711/2733eb5a/attachment.htm


More information about the wine-devel mailing list