64-разрядная сборка QUICKFIX для .NET в Visual Studio (оболочка .NET C++ DLL)

Я провел бессонную ночь, пытаясь собрать QUICKFIX, чтобы иметь 64-разрядную версия quickfix_net.dll и quickfix_net_messages.dll

Моя C# Framework является 64-разрядной, а обычные предлагаемые DLL QUICKFIX являются 32-разрядными, поэтому у меня нет другого выбора (обратное переключение моего приложения на 32-разрядное НЕ вариант)

Я ожидал, что решение VS_10 будет построено мгновенно (бедный маленький наивный кролик...), но у меня есть куча ошибок ненайденных библиотек (невозможно открыть исходный файл "xxxxxx.h") для многих операторов #include "xxxxxx.h". У меня такое поведение для двух источников проекта, которые я пробовал. Я озадачен, так как я больше любитель .net, и мне не удалось это исправить самостоятельно.

Исходный код проекта можно загрузить здесь, а 64-битный форк, который вас интересует я больше всего здесь
Если бы кто-то из вас мог открыть quickfix_vs10.sln и получить чистую компиляцию, я бы Будьте БОЛЕЕ чем благодарны, так как я мог бы поспать хотя бы пару часов в подвале компании, прежде чем вернуться к работе.

ИЗМЕНИТЬ:

Подробные ошибки:

  • У меня есть много нераспознанных #include "quickfix/foo" > Мне нужно удалить все префиксы "quickfix/" из всего решения
  • 'FIX' : это не имя класса или пространства имен (особенно в FieldMap.h)
  • отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает default-int -'QuickFix::FieldNotFound __gc &' : невозможно создать или перехватить управляемый объект по значению или ссылке.

У меня их сотни и еще много... :(

РЕДАКТИРОВАТЬ: ЭФФЕКТИВНЫЙ ОТВЕТ

Если вам нужен НАСТОЯЩИЙ движок .Net FIX, вам лучше выбрать VERSAFIX или QUICKFIX/N Оба являются родными .Net и Open Source, и, следовательно, компилируются как x64 dll (или x86, если хотите)

  • QUICKFIX/N только что вышел и очень перспективен. Жаль, что это вышло через несколько месяцев после поста :(
  • Что касается VERSAFIX, моя компания использовала его в течение 6 месяцев, и мы пока очень довольны. (Расс Карри, инициатор проекта, технически надежен и отзывчив.)

person Mehdi LAMRANI    schedule 21.09.2011    source источник


Ответы (3)


Вам следует проверить QuickFIX/n, библиотеку FIX, созданную специально для .NET (без неуправляемой оболочки C++). QuickFIX/n сохраняет все хорошие соглашения QuickFIX.

person Kenny Stone    schedule 02.12.2011
comment
О Боже, я расплакаюсь. ЭТО ИМЕННО то, чего я ждал, ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооочень за за... К сожалению, на момент публикации этого еще не было, поэтому мы использовали Open Source .Net VERSAFIX от Assimilate (см. редактирование) - person Mehdi LAMRANI; 01.02.2012
comment
QuickFIX/n очень перспективен. Однако у меня было слишком много проблем с ним, когда я пробовал его в прошлом году, поэтому в итоге я перешел на оболочку QuickFIX .net. - person Andrew Rimmer; 10.05.2013

Мне также понадобилась 64-битная версия quickfix несколько дней назад, и вот как я это сделал, и у меня не было никаких ошибок или проблем при преобразовании ее в 64-битную. Разархивируйте новый экземпляр архива, откройте его с помощью VS. Затем перейдите к свойствам всего решения и выберите Свойства конфигурации. Затем нажмите кнопку «Диспетчер конфигурации» и в раскрывающемся списке «Патформы активного решения» выберите «Создать». Теперь выберите x64 в первом раскрывающемся списке, а во втором «Копировать настройки из:» выберите «Смешанные платформы». После этого просто перестройте решение, и все готово.

Надеюсь, это поможет вам всем, ребята. Хорошего дня.

person Jordan    schedule 31.01.2012
comment
Вы говорите об исходном архиве quickfix-1.13.3.zip, доступном на сайте quickfix? На самом деле это именно то, что я сделал, я пробовал это раньше, и мне было трудно это делать. Я не смог скомпилировать его с первого раза: Какую версию VS вы использовали, и решение скомпилировалось без проблем? Нашел ли он недостающие библиотеки .h? Не могли бы вы дать более подробную информацию, пожалуйста? - person Mehdi LAMRANI; 01.02.2012
comment
Я использую VS2010, и если вы будете следовать инструкциям, которые я написал, у вас не возникнет проблем с его сборкой. Если у вас все еще есть проблемы, напишите мне здесь, и я готов выслать вам DLL, если это поможет вам. - person Jordan; 02.02.2012
comment
Что ж, со времени публикации я использовал Versafix (см. редактирование). Теперь доступен Quickfix/N. Спасибо, в любом случае. - person Mehdi LAMRANI; 02.02.2012

Ошибки заголовка (.h) возникают из-за невозможности найти включаемую папку. Если вы добавите эту папку в список мест, где проект ищет файлы заголовков, он должен нормально собраться. У меня тоже была эта проблема, но разработчик С++ сразу понял, что это такое, я признаю, что это заняло бы у меня некоторое время, если бы я не был так уверен в С++ и его причудах.

person MD-Tech    schedule 21.09.2011
comment
Это кажется немного сложнее: после добавления каталога включения в каталоги VC++ я получил более 1000 ошибок сборки. Я просто схожу с ума. Поскольку исходный код проекта официально зафиксирован, я полагаю, что он стабилен и что-то где-то мне не хватает. - person Mehdi LAMRANI; 21.09.2011
comment
какие ошибки сейчас? Возможно, вам потребуется добавить другие каталоги; иногда VS плохо работает с файлами проекта QF - person MD-Tech; 21.09.2011
comment
См. редактирование. Я не могу понять, есть ли папки, которые нужно добавить для включения, или проблема заключается в другом. - person Mehdi LAMRANI; 21.09.2011
comment
У меня тоже были такие ошибки, когда я начинал, мне нужно подумать, как я их исправил - person MD-Tech; 21.09.2011
comment
Я думаю, что если вы добавите все папки с файлами .h или .cpp в проекты, которые он должен построить. Также убедитесь, что порядок сборки правильный и установлены зависимости. - person MD-Tech; 22.09.2011