Visual Studio 上 .NET 的 QUICKFIX 64 位构建(.NET C++ DLL Wrapper)

Posted

技术标签:

【中文标题】Visual Studio 上 .NET 的 QUICKFIX 64 位构建(.NET C++ DLL Wrapper)【英文标题】:QUICKFIX 64-bit Build for .NET on Visual Studio (.NET C++ DLL Wrapper) 【发布时间】:2011-09-21 08:56:28 【问题描述】:

我花了一个不眠之夜尝试构建QUICKFIX 以获得 64 位版本的 quickfix_net.dll 和 quickfix_net_messages.dll

我的 C# 框架是 64 位的,而常规提供的 QUICKFIX dll 是 32 位的,所以我别无选择(不能将我的应用程序切换回 32 位)

我期待 VS_10 解决方案能够立即构建(可怜的小天真兔子......)但我有一堆未找到的库错误(无法打开源文件“xxxxxx.h”)对于许多#include“xxxxxx.h”陈述。对于我尝试过的两个项目源,我有这种行为。我很困惑,因为我更像是一个 .net 人,但我无法自己解决这个问题。

原始项目源可下载here,我最感兴趣的64位fork是here 如果你们中的一些人可以打开 quickfix_vs10.sln 并进行干净的编译,我将非常感激,因为我可以在公司的地下室至少睡几个小时,然后再回去工作。

编辑:

详细错误:

我有许多无法识别的 #include "quickfix/foo" > 我必须从整个解决方案中删除所有的 "quickfix/" 前缀 'FIX' : 不是类或命名空间名称(尤其是在 FieldMap.h 中) 缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 -'QuickFix::FieldNotFound __gc &' : 无法通过值或引用抛出或捕获托管对象

我有数百个,还有更多...... :(

编辑:有效答案 如果您想要一个真正的 .Net FIX 引擎,那么您最好选择 VERSAFIX 或 QUICKFIX/N 两者都是原生 .Net 和开源的,因此可以编译为 x64 dll(或 x86,如果你喜欢)

QUICKFIX/N 刚刚问世,很有前途。太糟糕了,它在帖子发布几个月后就出来了:( 截至 VERSAFIX,我的公司已经使用了 6 个月,到目前为止我们非常满意。 (项目发起人 Russ Curry 在技术上坚如磐石,反应迅速。)

【问题讨论】:

【参考方案1】:

您应该查看QuickFIX/n,这是一个专门为 .NET 构建的 FIX 库(没有非托管 C++ 包装器)。 QuickFIX/n 保留了 QuickFIX 的所有良好约定。

【讨论】:

天哪,我泪流满面。这正是我一直在等待的,太久了!!!遗憾的是,在发帖时这还不可用,所以我们使用了 Assimilate 的开源 .Net VERSAFIX(见编辑) QuickFIX/n 很有前途。然而,当我去年尝试它时,我遇到了太多问题,所以最终转向了 QuickFIX .net 包装器。【参考方案2】:

几天前我也需要 64 位版本的 quickfix,这就是我如何做到的,将其转换为 64 位完全没有错误或问题。解压缩档案的一个新实例,用 VS 打开它。 然后转到整个解决方案的属性并选择配置属性。然后按“配置管理器”按钮并从“活动解决方案模式”的下拉菜单中选择“新建”。现在从第一个下拉列表中选择 x64,然后从第二个“复制设置自:”中选择“混合平台”。完成此操作后,只需重建解决方案即可完成。

希望对大家有所帮助。祝你有美好的一天。

【讨论】:

您是在谈论 quickfix 网站上提供的“quickfix-1.13.3.zip”源存档吗?实际上,这正是我所做的,我之前尝试过并且很难做到。我第一次无法编译它:您使用的是哪个版本的 VS,并且解决方案编译没有问题? Didi 它找到了 .h 缺失的库?能否请您提供更多详细信息? 我使用 VS2010,如果您按照我输入的步骤操作,构建它不会有任何问题。如果您仍然有问题,请在这里写信给我,如果这对您有帮助,我愿意将 DLL 发送给您。 自发帖以来我一直在使用 Versafix(见编辑)。现在可以使用 Quickfix/N。还是谢谢。【参考方案3】:

标头 (.h) 错误是由于它无法找到包含文件夹。如果您将该文件夹添加到项目查找头文件的位置列表中,它应该可以正常构建。我也遇到过这个问题,但是,一个 c++ 开发人员立刻就知道它是什么,我承认如果我对 c++ 不是那么熟悉而且它的怪癖,那我会花一些时间

【讨论】:

这似乎有点复杂:在将包含目录添加到 VC++ 目录后,我得到了 1000 多个构建错误。我简直要疯了。由于项目源已正式提交,我想它是稳定的,并且我缺少某些东西 当前有哪些错误?您可能需要添加其他目录;有时 VS 不能很好地处理 QF 项目文件 查看编辑。我不知道是否要添加要包含的文件夹,或者问题是否出在其他地方。 我开始的时候也遇到了这些错误,我需要考虑如何修复它们 我认为,如果您将所有带有 .h 或 .cpp 文件的文件夹添加到它应该构建的项目中。还要确保构建顺序正确并设置了依赖项

以上是关于Visual Studio 上 .NET 的 QUICKFIX 64 位构建(.NET C++ DLL Wrapper)的主要内容,如果未能解决你的问题,请参考以下文章

我装visual studio.net系统必备 的时候,点跳 过后,怎么让我插入visual studio.net

visual studio.net 2002 在哪里有下载?

我可以在 Windows XP 上使用 Visual Studio 2010 远程调试器从 Visual Studio 2012 调试 .Net 4.0 应用程序吗?

Visual Studio 上 .NET 的 QUICKFIX 64 位构建(.NET C++ DLL Wrapper)

visual Studio .NET 安装

为啥我不能在没有安装Visual Studio的机器上运行调试版的.NET程序