Question about IPC between WINE and other processes

Roderick Colenbrander thunderbird2k at gmx.net
Sat Jul 12 03:48:09 CDT 2003


You need to develop this winelib dll from Linux. Also check out the winelib 
docs. (I'd recommend you to use winegcc since you likely won't port old code 
... )

Roderick

On Friday 11 July 2003 23:41, you wrote:
> 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!




More information about the wine-devel mailing list