[英]Convert 32 bit dll to 64 bit dll
當我嘗試在64位應用程序中使用它時,我有32位編譯的DLL它無法加載,所以我想將dll轉換為64位。 當應用程序的平台從“任何CPU”或“x64”變為“x86”時,它工作正常。 但我想在64位下使用它,因為我要從ASP頁面調用dll。
這個你能幫我嗎。
Windows無法將32位dll加載到64位進程中 - 這是您無法規避的限制。 這意味着如果您的32位DLL對其他32位DLLS(或使用任何32位.Net DLLS)進行任何P / Invokes,您將完全沒有運氣(您將需要以32位運行整個網站)。
你不清楚它什么時候起作用,什么時候不起作用。 以下是解釋:
就AnyCPU而言:
在大多數情況下,可以將其保留為AnyCPU。 但是,正如我所說,如果您使用任何本機或.Net 32位DLL,您將需要使您的整個應用程序32位(並且沒有任何東西,或微軟可以做到這一點)。
x86標志通常是出於某種原因設置的,因此更改它可能是個壞主意。 但如果你完全確定,那就是一個實用工具corflags.exe。 我在C:\\ Program Files \\ Microsoft SDKs \\ Windows \\ v6.0A \\ bin下有它。 當然它只對.net程序集有幫助。
如果要在32位和64位進程中加載純C#DLL,那么正確的選擇是AnyCPU。 這將把它編譯為CPU不可知的DLL,它可以加載到任何類型的進程中。
我不是百分百肯定那是你要問的。 如果不是,你可以澄清你的問題嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.