Rundll32 needs X

Ove Kaaven ovek at arcticnet.no
Mon Mar 15 21:23:27 CST 2004


tir, 16.03.2004 kl. 03.20 skrev Vincent Béron:
> Hi folks,
> 
> Since wine.inf is now used as the source for the default values for the
> registry (via rundll32), importing it absolutely needs X (whereas the
> older regedit method didn't when importing a .reg file). This can be a
> problem for people running wineinstall via ssh from a Windows box.
> 
> Is there a reason rundll32 needs user32 and cannot delayimport it?

You're not going to gain anything by letting rundll32 not import user32,
because it has to load all the dlls it's telling to self-register
anyway, and many of them will import user32 themselves even if rundll32
don't.

In my debian packages I go the ttydrv route, with the following patch to
make ddraw.dll load and self-register without crashing under ttydrv.

--- wine-0.0.20040309.orig/dlls/ddraw/main.c
+++ wine-0.0.20040309/dlls/ddraw/main.c
@@ -88,6 +88,8 @@
     const char *glname = SONAME_LIBGL;
     BOOL ret_value;
 
+    if (!wine_tsx11_lock_ptr) return FALSE; /* avoid crash with ttydrv */
+
     gl_handle = wine_dlopen(glname, RTLD_NOW, NULL, 0);
     if (!gl_handle) {
         WARN("Wine cannot find the OpenGL graphics library (%s).\n",glname);
--- wine-0.0.20040309.orig/dlls/ddraw/ddraw/hal.c
+++ wine-0.0.20040309/dlls/ddraw/ddraw/hal.c
@@ -216,7 +216,8 @@
     data.lpDD = NULL;
     data.ddRVal = 0;
     data.DestroyDriver = dd_cbs.HALDD.DestroyDriver;
-    data.DestroyDriver(&data);
+    if (data.DestroyDriver)
+       data.DestroyDriver(&data);
 }
 
 static DWORD choose_mode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP,





More information about the wine-devel mailing list