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