2011-07-08 62 views
3

我有一個windows .dll文件(來自第三方 - 已停止支持它,我沒有C源代碼來糾正這些問題)。.dll只適用於Windows XP和Vista,但不是7?

我在我的項目中使用.dll。

.dll文件在Windows XP/Vista下工作得非常好(因爲它是在這些操作系統版本是當前/最新版本時發佈的) - 問題是現在項目現在僅限於Windows XP/Vista用戶(由於那個.dll) - 當它在Windows 7下運行時,它有點故障(即產生與Windows XP/Vista相比不同的結果)。

我相信問題是微軟必須改變一些東西(在Windows庫或什麼?)這是影響兼容性。

所以我想知道 - 我知道它不是最好的選擇,但作爲臨時/駭客的解決方法是他們可以模仿Windows 7用戶的Windows XP/Vista功能,即。是他們爲此設計的任何項目 - 例如=>http://www.busybox.net/about.html(它允許在Windows上執行Linux功能)。

欣賞所有建議/解決方法。

+0

某些Windows 7在其中有完整的XP,您可以在某些透明容器中運行舊版程序。我認爲你右鍵單擊EXE並通過一些嚮導。 –

+1

什麼是兼容性問題?也就是說,當你說它「有些故障」和「產生不同的結果」時,那些差異到底是什麼?我問,因爲有人知道OS兼容性差異。 – selbie

回答

1

在Windows 7中,您可以在兼容模式下運行可執行文件,並將其設置爲在與Windows XP兼容的模式下運行。有關詳細信息,請參閱Make older programs run in this version of Windows


需要注意的是,你不能強迫這個.dll始終使用兼容模式,但你可以改變你的安裝程序來進行爲做到這一點,用戶或計算機相應的註冊表設置。

所有你需要做的就是添加一個註冊表項,如下所示。下設:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Application Compatibility\Layers 

添加一個關鍵,如:

"Path\To\Program\YourExecutable.exe"=WINXPSP2 

這將導致你的程序總是在兼容模式運行。如果您想爲當前用戶設置,您也可以在HKCU中進行設置。

+0

謝謝,雖然他們是通用的/自動的方式來爲特定的.dll進行這些更改? - 我想讓最終用戶儘可能簡單地使用 - 而不是經歷幾個步驟。 – newbtophp

+0

@newbtophp:你不能設置爲.DLL,但可以在你的EXE上設置它。我將編輯我的答案... –

+0

感謝您提供豐富的編輯內容,但非常不方便,這不能解決我的問題,因爲內核位於.dll內,並且兼容模式只接受.exe擴展名。 – newbtophp

1

這聽起來很容易:但Windows兼容模式呢?也許它有效。

1

您可以嘗試在Windows 7下在Windows XP Compatibility mode下運行您的應用程序,並將結果與​​本機Windows XP的結果進行比較。

相關問題