我之前在我的项目中使用了quickfix_net.dll和quickfix_net_messages.dll。该项目是在发布模式和项目属性中构建的 - >平台目标是x86。当我尝试启动我的Windows服务时,上面的项目被引用,然后我得到“试图加载一个格式不正确的程序。”
我搜索了stackoverflow,大部分建议是使用QuickFix / n,就像在原生.NET中一样,没有c ++的复杂性,不得不与64位操作系统等进行斗争
迁移到QuickFix / n后,我假设发布模式使用和项目属性构建 - >平台目标到AnyCPU可以在我的64位2008服务器上运行,但我得到了同样的错误“试图加载一个格式不正确的程序。”
当我更改项目属性时 - >平台目标到x86然后我才能在我的Windows 2008 64位服务器上使用QuickFix / n。
我的所有项目(即dll)都设置为Platform Target to AnyCPU,但只有使用QuickFix / n的特定dll需要设置为x86。
任何人都可以解释为什么本机.net QuickFix无法使用x64(因为我的服务器是64位)以及为什么当Target设置为x86时它正在工作。
答案 0 :(得分:0)
确保在执行项目的属性中选中或取消选中“首选32位”。如果您的QuickFix库是以32位编译的,那么您需要检查“首选32位”框,以防您以ANYCPU为目标。这对我有用