Article Title: Windows software installation errors and troubleshooting by Wine. Linux is a technology channel of the IT lab in China. Including desktop applications, Linux system management, kernel research, embedded systems, open source, and other basic categories 1. Install rtx Software
1) during installation, some errors will be reported in the background: for example, mfc42u. dll cannot be found, you can copy it from the windows/system32 directory to the corresponding wine directory.
2) If it is automatically built wine, it is possible to have libxml2 support was not present at compile time problem, then you need to install the libxml2-dev package.
2. install some software with input check, such as China Merchants Securities, which may contain errors similar to X11DRV_SetDIBits + 0x1f2 () in winex11. in this case, install patches. The patching method is as follows:
1) download wine source code
2) modify the file wine/dlls/winex11.drv/dib. c B/dlls/winex11.drv/dib. c as follows:
Skipped content of type multipart/alternative ------------ next part -------------- Diff -- git a/dlls/winex11.drv/dib. c B/dlls/winex11.drv/dib. c Index cec2058.. 809897e 100644 --- A/dlls/winex11.drv/dib. c ++ B/dlls/winex11.drv/dib. c @-Route + route @ INT X11DRV_SetDIBits (X11DRV_PDEVICE * ph X11DRV_DIB_IMAGEBITS_DESCR descr; BITMAP bitmap; LONG width, height, tmpheight; + Int nrsrcbytes, dibpitch; INT result;
Descr. physDev = physDev; @-3880,6 + 3881,16 @ INT X11DRV_SetDIBits (X11DRV_PDEVICE * ph
If (startscan + lines> height) lines = height-startscan;
+/* Pointer check */ + Dibpitch = (width * descr. infoBpp + 31 )&~ 31)/8; + If (descr. compression) + Nrsrcbytes = 1; + Else { + Nrsrcbytes = lines * dibpitch; + If (nrsrcbytes <0) nrsrcbytes =-nrsrcbytes; +} + If (IsBadReadPtr (bits, nrsrcbytes) return 0; + Switch (descr. infoBpp) { Case 1: @-3926,7 + 3937,7 @ INT X11DRV_SetDIBits (X11DRV_PDEVICE * ph Descr. width = bitmap. bmWidth; Descr. height = lines; Descr. useShm = FALSE; -Descr. dibpitch = (descr. infoWidth * descr. infoBpp + 31 )&~ 31)/8; + Descr. dibpitch = dibpitch; X11DRV_DIB_Lock (physBitmap, DIB_Status_GdiMod, FALSE ); Result = X11DRV_DIB_SetImageBits (& descr ); X11DRV_DIB_Unlock (physBitmap, TRUE ); |
Delete the row with a minus sign on the left, and add the row with a plus sign on the left.
Compile after modification. If you use the debian system, use the following command to compile:
Cd wine Sudo debian/rules clean Sudo debian/rules build Sudo debian/rules binary |
3. assertion failure error:
Text. c: usr32 pellip-> under = 0 & pellip-> after = 0
May be garbled. Configure wine to support Chinese characters.