文章詳情頁
Wine安裝一些Windows軟件的錯誤以及處理
瀏覽:2日期:2024-01-28 08:41:26
;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.c+++ b/dlls/winex11.drv/dib.c@@ -3861,6 +3861,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,6 +3881,16 @@ INT X11DRV_SetDIBits( X11DRV_PDEVICE *phif (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 *phdescr.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 );左邊有-號的,刪除這一行,左邊有+號的,添加這一行。 修改后編譯,如果使用debian系統,則可以用以下命令編譯: cd winesudo debian/rules cleansudo debian/rules buildsudo debian/rules binary3、出現斷言失敗錯誤: text.c: usr32 pellip->under == 0 && pellip->after == 0 時,有可能是亂碼導致,配置wine支持中文即可。
標簽:
Windows系統
排行榜
