我有一个Visual Studio 2012 .Net主项目,其构建属性中指定了一个平台目标x86。该项目由多个C ++项目和C#项目组成。在我的Configuration Manager中,C#项目的平台是Any CPU,而C ++项目是Win32。我想引用针对AMD64的第三方dll。当我添加引用时,我收到以下警告:
警告:警告:处理器之间存在不匹配 正在构建的项目架构“MSIL”和处理器 参考“DALSA,processorArchitecture = AMD64”的架构, “AMD64”。这种不匹配可能会导致运行时故障。请考虑 通过改变项目的目标处理器架构 配置管理器,以便对齐处理器体系结构 您的项目和引用之间,或依赖于 具有与目标匹配的处理器体系结构的引用 您项目的处理器架构。
如果我尝试更改平台目标x64的主要C#项目构建,它会抱怨,因为它所依赖的外部DLL具有平台目标x86。
我在做什么wr0ng?
答案 0 :(得分:2)
所以你有两双左鞋,而不是一双右鞋。如果你想走路,你应该以某种方式得到合适的鞋子。获取x86 DALSA或Win64外部DLL。
单个进程不可能在不同的体系结构上运行。
唯一的另一种选择是创建一个辅助进程,主进程将与某些IPC类似的管道连接,并且将在互补体系结构上运行。或者使用COM对象包装DLL。