在Visual Studio上为.net构建64位的QUICKFIX.. NET c++ DLL包装器)

本文关键字:c++ NET DLL 包装 QUICKFIX Studio Visual 上为 net 64位 构建 | 更新日期: 2023-09-27 18:09:07

我花了一个不眠之夜试图建立QUICKFIX有64位版本的quickfix_net.dll和quickfix_net_messaging .dll

我的c#框架是64位的,而常规提供的QUICKFIX dll是32位的,所以我没有其他选择(切换回我的应用程序到32位不是一个选项)

我期待VS_10解决方案立即构建(可怜的小天真兔子…),但我有一堆未发现的库错误(不能开放源代码文件"xxxxxx.h")许多#包括"xxxxxx.h"语句。对于我尝试过的两个项目源,我有这种行为。我很困惑,因为我更多的是一个。net家伙,我没有设法自己解决这个问题。

原始项目源代码可在这里下载,我最感兴趣的64位分支在这里
如果有人能打开quickfix_vs10。我非常感激,因为这样我就可以在公司的地下室睡上至少几个小时,然后再回去工作。

编辑:

详细错误:

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

每一种我都有数百种,甚至更多……(

EDIT: EFFICIENT ANSWER

如果你想要一个真正的。net修复引擎,那么你最好选择VERSAFIX或QUICKFIX/N两者都是原生的。net和开源的,因此可以编译为x64 dll(或者x86,如果你喜欢)

  • QUICKFIX/N刚刚出来,非常有前途。可惜这篇文章几个月后才出来
  • 至于VERSAFIX,我的公司已经使用了6个月,到目前为止我们非常满意。(Russ Curry,项目发起人,技术上坚如磐石,反应灵敏。)

在Visual Studio上为.net构建64位的QUICKFIX.. NET c++ DLL包装器)

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

几天前我也需要64位版本的quickfix,下面是我是如何做到的,并且完全没有错误或问题将其转换为64位。解压归档文件的一个新实例,用VS打开它。然后转到整个解决方案的属性并选择Configuration properties。然后按"配置管理器"按钮,从"活动解决方案平台"下拉菜单中选择"新建"。现在从第一个下拉菜单中选择x64,从第二个"Copy settings from:"中选择"Mixed Platforms"。在您完成这些之后,只需重新构建解决方案,您就完成了。

我希望这对大家都有帮助。祝你过得愉快。

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