2
A
回答
0
您可以嘗試使用corflags(可能/可能不起作用),或者將您的應用程序設置爲僅在32位中編譯。
corflags <assemblyname> /32bit-
刪除了對.Net程序集的32位限制。
+0
這會如何解決問題?這不應該是/ 32bit +嗎? – 2009-01-15 23:44:06
1
您應該找到並安裝此com組件的64位版本。如果它不可用,則必須將.net應用程序作爲32位應用程序運行。 com組件正在運行。而且你不能在同一個進程中同時運行32位和64位代碼。
2
當您使用64位標誌並在64位操作系統上運行時,程序集將加載到64位進程中。絕大多數COM對象都是以「在Proc服務器」中創建的。
創建「in proc server」的第一步是將包含COM對象的DLL加載到創建過程中。 DLL是32位,不能加載到進程中。
你不幸堅持2個選項
- 明確編譯EXE的.Net爲32位
- 寫的組件,以便它可以在它自己的進程主持。即使那樣我也不確定讓32位和64位進程彼此交談是多麼容易。
2
除了已經給出的答案:
在Windows x64時的處理可以開始爲32位或64位的過程。 64位進程只能加載64位dll,而32位進程只能加載32位dll。
如果您的.Net應用程序的平臺目標(例如在項目屬性中指定)設置爲「任何CPU」,則中間代碼將根據目標平臺編譯爲32位或64位代碼,即x64系統將生成64位代碼。
因此,該代碼無法再在64位系統上加載32位dll。
如果您的代碼加載非託管程序集,則應始終明確指定目標平臺。
0
當進程加載爲x64時,無法加載x86二進制文件/程序集/任何內容。
相關問題
- 1. .NET互操作性問題
- 2. VB6中的VB6 .NET互操作問題
- 3. .NET ActiveX互操作性問題
- 4. .NET UdpClient和Winsock互操作性問題
- 5. 在.NET中使用數據集的互操作性問題
- 6. VBA COM互操作問題
- 7. C#互操作問題
- 8. wsdl互操作性問題
- 9. COM互操作問題
- 10. Java .NET互操作
- 11. C#中的COM互操作問題#
- 12. 問題與使用Office互操作與Excel和.NET 4.0/4.5
- 13. 嵌入互操作類型的問題
- 14. 處理/ .NET互操作?
- 15. Java和.Net互操作性
- 16. ADODB .NET互操作光標
- 17. VB6/.NET窗體互操作
- 18. iPhone/.NET WCF互操作性
- 19. Silverlight與JBoss WebService互操作問題
- 20. VB.NET指針互操作問題
- 21. 互操作性問題python2 python3
- 22. WPF-DirectX互操作問題(D3DImage)
- 23. Microsoft Office互操作性能問題
- 24. 64位Quicktime互操作問題
- 25. 解決x64 com互操作問題
- 26. NET的字符串操作問題
- 27. .NET互操作Excel中爲HTML
- 28. .net與VB6在Windows 7中互操作
- 29. 在.net中正確關閉excel互操作應用程序問題
- 30. Java和.net的互操作性
問題是該進程加載x64 .NET框架。 32位的COM組件正在被加載到相同的進程(這是64位),這是不可能的。您應該強制它運行32位x86 .NET框架。 – 2009-01-15 23:34:37