XCode的ARC重构强制我的Cocoa Library DLL为64位,我不知道我是否仍然可以从x86 C#应用程序中DllImport
该DLL。这是可能的,这样做有什么后果吗?
答案 0 :(得分:6)
您不能在一个进程中混合使用32位和64位代码。因此,使用混合位数代码的唯一方法是拥有多个进程。您需要某种形式的IPC来使其工作。您无法使用DllImport
,因为它正在进行中。
答案 1 :(得分:0)
问题不在于C# - 它是操作系统中的托管过程。由于一个进程只能加载具有相同“位数”的DLL,因此进程为64位,或者您无法直接加载DLL。无论您使用何种语言或框架。
一个解决方案是将C#项目作为目标,使用“any”cpu或者特别指向X64。
另一种解决方案是创建一个托管流程,您可以使用IPC或类似模型进行通信。
答案 2 :(得分:0)
必要时,解决方案是在管道或类似设备中调用EXE。这当然假设是64位窗口。如果没有,请试试。