Добавление поддержки MFC в проект Qt

У меня есть проект Qt и вы хотите использовать внешнюю библиотеку, которая включает в себя "afxstr.h". Проблема в том, что всякий раз, когда я компилирую после ссылки на lib и включая их заголовок, я получаю сообщение об ошибке:

#error afxstr.h can only be used in MFC projects.  Use atlstr.h

Конечно, мой проект не является проектом MFC, и я не могу использовать atlstr.h вместо него, потому что это не моя библиотека.

Я ищу быстрое решение!

Я использую VS2010.

Этот вопрос представляет собой API интерактивных брокеров.

Ответ 1

Соответствующая настройка - Свойства конфигурации/Общие, Использование MFC.

Опция компилятора подразумевает, что это /D "_AFXDLL" при использовании MFC в DLL. Что касается параметров компоновщика, то любопытно удалить явное связывание библиотек импорта Windows (таких как kernel32.lib).

Visual Studio, похоже, автоматически находит соответствующие библиотеки. Однако опция "Использовать MFC" хранится с файлом проекта, поэтому я не могу сказать, как она будет переводиться в пользовательскую сборку script.

Первыми должны быть

#include <afx.h>

и вы не можете включить windows.h перед этим. Как правило, первые включают stdafx.h, если вы используете предварительно скомпилированные заголовки. Помимо этого, другие заголовки MFC могут быть включены по мере необходимости.

Я сомневаюсь, что это конец истории, когда MFC играет с чем угодно - это больно, а иногда легче сдаться:) Быстрый google показывает, что есть решения, но они связаны с дополнительным кодом и довольно стары.

Ответ 2

ну, вы уже это знаете, просто сделайте это более понятным:

.pro file add: ОПРЕДЕЛЕНИЯ + = IB_USE_STD_STRING

избегать использования MFC CString