QUICKFIX 64 位在 Visual Studio 上构建 .NET(.NET C++ DLL 包装器)
我花了一个不眠之夜试图构建 QUICKFIX 以获得 64 位Quickfix_net.dll 和 Quickfix_net_messages.dll 的版本
我的 C# 框架是 64 位,常规提供的 QUICKFIX dll 是 32 位,所以我别无选择(将我的应用程序切换回 32 位不是一个选项)
我期待 VS_10 解决方案立即构建(可怜的小天真的兔子......)但我有一堆未找到的库错误(无法打开源文件“xxxxxx.h”) ") 对于许多 #include "xxxxxx.h" 语句。我尝试过的两个项目源都有这种行为。我很困惑,因为我更像是一个 .net 人,而且我自己没能解决这个问题。
原始项目源代码可在此处下载,以及您感兴趣的 64 位分支我最喜欢的是这里
如果你们中的一些人可以打开quickfix_vs10.sln并进行干净的编译,我将非常感激,因为这样我就可以在公司的地下室睡至少几个小时,然后再回去工作。
编辑:
详细错误:
- 我有许多无法识别的#include“quickfix/foo”>我必须从整个解决方案
- “FIX”中删除所有“quickfix/”前缀:不是类或命名空间名称(尤其是在 FieldMap.h 中)
- 缺少类型说明符 - 假定为 int。注意:C++ 不支持default-int -'QuickFix::FieldNotFound __gc &' :无法通过值或引用抛出或捕获托管对象,
我有数百个,甚至更多...:(
编辑:有效的答案
如果您想要一个真正的 .Net FIX 引擎,那么您最好选择 VERSAFIX 或 QUICKFIX/N 两者都是本机 .Net 和开源代码,因此可以编译为 x64 dll(或 x86,如果您愿意)
- QUICKFIX/N 刚刚问世,并且非常有前途。太糟糕了,它在发布几个月后才出现:(
- 截至 VERSAFIX,我的公司已经使用它 6 个月了,到目前为止我们非常满意。 (项目发起人 Russ Curry 在技术上坚如磐石且反应敏捷。)
I spent a sleepless night trying to build QUICKFIX to have the 64-bit version of quickfix_net.dll and quickfix_net_messages.dll
My C# Framework is 64-bit and the regular offered QUICKFIX dll's are 32-bit, so I have no other choice (Switching back my app to 32-bit is NOT an option)
I was expecting the VS_10 solution to build instantly (Poor little naive bunny...) but I have a bunch of unfound libraries errors (cannot open source file "xxxxxx.h") for many #include "xxxxxx.h" statements. I have this behavior for the two project sources I have tried. I am puzzled as I am more of a .net guy and I did not manage to fix this on my own.
The original project source is downloadable here and the 64-bit fork which interest me most is here
If some of you could open quickfix_vs10.sln and have a clean compile I would be MORE than grateful as I could then get at least a couple of hours sleep in the company's basement before getting back to work.
EDIT :
Detailed Errors :
- I have many unrecognized #include "quickfix/foo" > I have to remove all the "quickfix/" prefixes from the entires solution
- 'FIX' : is not a class or namespace name (especially in FieldMap.h)
- missing type specifier - int assumed. Note: C++ does not support default-int
-'QuickFix::FieldNotFound __gc &' : unable to throw or catch a managed object by value or reference
I have hundreds of each and many more... :(
EDIT : EFFICIENT ANSWER
If you want a REAL .Net FIX Engine, then you'd better go for VERSAFIX or QUICKFIX/N
Both are native .Net and Open Source, and hence compilable as x64 dlls (or x86if you like)
- QUICKFIX/N just came out and is very promising. Too bad it came out a few months after the post :(
- As of VERSAFIX, my company has used it for 6 Months and we are pretty satisfied so far.
(Russ Curry, the project initiator is technically rock solid and responsive.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该查看 QuickFIX/n,这是一个专为 .NET 构建的 FIX 库(没有非托管 C++ 包装器)。 QuickFIX/n 保留了 QuickFIX 的所有良好约定。
You should check out QuickFIX/n, a FIX library built specifically for .NET (without the unmanaged C++ wrapper). QuickFIX/n keeps all the good conventions of QuickFIX.
几天前我也需要 64 位版本的 QuickFix,以下是我的做法,将其转换为 64 位时没有任何错误或问题。解压缩存档的新实例,使用 VS 打开它。
然后转到整个解决方案的属性并选择配置属性。然后按“配置管理器”按钮,从“活动解决方案模式”下拉列表中选择“新建”。现在,从第一个下拉列表中选择 x64,然后从第二个“复制设置:”中选择“混合平台”。完成此操作后,只需重建解决方案即可完成。
我希望这对你们所有人都有帮助。祝你今天过得愉快。
I needed the 64 bit version of quickfix aswell few days ago and here is how i did it and had no errors or problems at all converting it to 64bit. Unrar a new instance of the archive open it with VS.
Then go to properties of the entire solution and select Configuration Properties. Then press "Configuration Manager" button and from the drop down of "Active Solution Patforms" chose "New". Now select x64 from the first drop down and from the second "Copy settings from:" select "Mixed Platforms". After you do this just rebuild the solution and you are done.
I hope this help you all guys. Have a nice day.
标头 (.h) 错误是由于无法找到包含文件夹而导致的。如果您将该文件夹添加到项目查找头文件的位置列表中,它应该可以正常构建。我也遇到了这个问题,但是,一个 C++ 开发人员立刻就知道它是什么,我承认,如果我对 C++ 不是那么熟悉的话,我会花上一段时间,而且这是怪癖
The header (.h) errors are due to it being unable to find the include folder. If you add that folder to the list of places that the project looks for header files it should build fine. I had this problem as well but, bing a c++ dev knew what it was instantaneously, I admit it would have taken me a while if I weren't so au fait with c++ and it's quirks