簡體   English   中英

在32位操作系統中使用64位dll

[英]Consuming 64bit dll in 32 bit OS

目前,我有一個用C#編寫的應用程序。 在內部,我正在使用另一個第三方dll,它也是用C#編寫並在32位Windows中編譯的。 第三方dll將在64位Windows中發布,最終我必須使用這個新的dll。 但我現在不想遷移到64位操作系統。

我的問題:這個新的dll是否會影響我現有的代碼? 如果是,那么我需要如何以及進行哪些更改以適應此功能。

我敢肯定,您不能在32位Windows中使用64位DLL。

您可以通過使用thunk之類的技巧或WoW64之類的32位子系統來實現一種方式,但是您並不能完全支持32位版本中的64位代碼。

希望您的第三方將繼續提供其DLL的32位版本,因此您不必擔心。 如果沒有,並且您想升級,那么您也將需要64位。

如果第三方庫是C#庫, 則應將其編譯為AnyCPU。 (請務必與作者確認。)

如果它編譯為AnyCPU,那么如果從32位程序中使用它,它會正常工作32位,如果你從64位程序中使用它,它就會為64位進行操作。

否則,您將需要更改自己的程序以匹配DLL。 但是,如果他們沒有將其設置為AnyCPU,我會向他們抱怨...或找出他們的動機(也許是使用非托管DLL)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM