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,