2010-09-02 64 views

回答

1

使用平臺特定的API,即。 Win32 API或Linux API,如果它使用32位或64位特定庫。

一般情況:使用所有機器上不存在的資源。

1

它在哪裏使用的功能是一臺機器而不是另一臺?

下面是一些例子:

  • 需要一定的附件或端口出現 - 說UART調制解調器等
  • 使用了只存在於一個特定的CPU如英特爾指令不AMDS等
  • 用途在另一個版本的操作系統中可能存在的操作系統功能

本質上是阻止代碼在另一臺計算機上運行的任何內容。

0

如果使用不安全的託管代碼編寫和/或依賴於非託管DLL或特定於平臺的API,.NET程序可能具有機器相關性。

「依賴於機器」在這裏通常意味着依賴於32位或64位指針大小。任何操作IntPtr的託管C#代碼都很可能會對本地機器指針的大小敏感 - 32位或64位。

可驗證託管代碼通常與機器無關。 .NET應用程序或程序集可以編譯爲在「32位或63位」環境下運行,這意味着它將根據運行時的操作系統環境JIT編譯爲本機32位或本機64位代碼。

如果託管程序集依賴於非託管DLL,這通常意味着託管代碼綁定到與非託管DLL編譯的機器類型相同 - 32位或64位,但不是兩者。

0

「依賴於機器」意味着程序在一臺機器上的行爲與另一臺機器上的不同。通常這意味着機器的硬件會影響程序。程序可能會將某些計算卸載到GPU上,因此只能在具有該程序編寫的GPU兼容的GPU的機器上工作。一個程序可能能夠利用一些CPU特有的專用指令,而在其他CPU上,它必須使用幾個來模擬該指令。

這與「平臺依賴」的概念密切相關,「平臺依賴」通常指對特定操作系統或系統軟件集的依賴關係。

0

通常,這意味着程序依賴於一個機器上存在但其他機器上可能不存在的某些屬性或行爲。例如,如果調用機櫃供應商提供的特殊驅動程序,特定機器可能會閃爍機櫃上的一些燈。使用這種驅動程序的代碼只對具有該類型機櫃的​​機器有用。

相關問題