繁体   English   中英

在32位应用程序中使用64位DLL

[英]Using a 64bit DLL in a 32bit Application

XCode的ARC重构将我的Cocoa库DLL强制为64位,我不知道是否仍然可以从x86 C#应用程序中DllImport该DLL。 这可能吗,这样做有什么后果吗?

您不能在单个过程中混合使用32位和64位代码。 因此,使用混合位代码的唯一方法是拥有多个进程。 您需要某种形式的IPC才能使其工作。 您无法使用DllImport进行此操作,因为它正在进行中。

问题不是真正的C#,而是OS中的托管过程。 由于一个进程只能加载具有相同“位”的DLL,因此该进程为64位,或者您无法直接加载DLL。 无论您使用哪种语言或框架。

一种解决方案是将C#项目定位为使用“任何” cpu或将其专门指向X64。

另一个解决方案是创建一个托管过程,您可以使用IPC或类似模型与之通信。

必要时的解决方案是在管道中调用EXE或类似方法。 这当然假定为64位窗口。 如果没有,平底锅。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM