Wine安装一些Windows软件的错误以及处理

;1、安装rtx软件 1)安装时,后台会报一些错误:如找不到mfc42u.dll之类的,可以从windows/system32目录拷贝到wine的相应目录 。2)如果是自动构建的wine,则有可能出现 libxml2 support was not present at compile time 的问题,这时需要安装 libxml2-dev 包 。2、安装一些带输入检测的软件如招商证券,会出现包含类似 X11DRV_SetDIBits 0x1f2() in winex11 的错误,这时需要打补丁 。打补丁的方法是: 1)下载wine源代码 2)按照以下内容修改文件 wine/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c: Skipped content of type multipart/alternative-------------- next part --------------diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.cindex cec2058..809897e 100644--- a/dlls/winex11.drv/dib.cb/dlls/winex11.drv/dib.c@@ -3861,63861,7 @@ INT X11DRV_SetDIBits( X11DRV_PDEVICE *phX11DRV_DIB_IMAGEBITS_DESCR descr;BITMAP bitmap;LONG width, height, tmpheight;int nrsrcbytes, dibpitch;INT result;descr.physDev = physDev;@@ -3880,63881,16 @@ INT X11DRV_SetDIBits( X11DRV_PDEVICE *phif (startscanlines > height) lines = height - startscan;/* pointer check */dibpitch = ((width * descr.infoBpp31) &~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,73937,7 @@ INT X11DRV_SetDIBits( X11DRV_PDEVICE *phdescr.width = bitmap.bmWidth;descr.height = lines;descr.useShm = FALSE;- descr.dibpitch = ((descr.infoWidth * descr.infoBpp31) &~31) / 8;descr.dibpitch = dibpitch;X11DRV_DIB_Lock( physBitmap, DIB_Status_GdiMod, FALSE );result = X11DRV_DIB_SetImageBits( &descr );X11DRV_DIB_Unlock( physBitmap, TRUE );左边有-号的,删除这一行,左边有+号的,添加这一行 。修改后编译,如果使用debian系统,则可以用以下命令编译: cd winesudo debian/rules cleansudo debian/rules buildsudo debian/rules binary3、出现断言失败错误: text.c: usr32 pellip->under == 0 && pellip->after == 0 时,有可能是乱码导致,配置wine支持中文即可 。

    推荐阅读