Adicionando suporte MFC a um projeto Qt
-
13-12-2019 - |
Pergunta
Tenho um projeto Qt e gostaria de usar uma biblioteca externa que inclua "afxstr.h".O problema é que sempre que compilo após vincular à lib e incluir o cabeçalho, recebo um erro:
#error afxstr.h can only be used in MFC projects. Use atlstr.h
Claro, meu projeto não é um projeto MFC e não posso usar atlstr.h porque não é minha biblioteca.
Estou procurando uma solução rápida!
Estou usando o VS2010.
A lib em questão é a API de corretores interativos.
Solução
A respectiva configuração é Propriedades de configuração/Geral, Uso de MFC.
A opção do compilador implícita é /D "_AFXDLL" ao usar MFC em uma DLL.Quanto às opções de vinculador, curiosamente a vinculação explícita de bibliotecas de importação do Windows (como kernel32.lib) foi removida.
O Visual Studio parece encontrar as respectivas bibliotecas automaticamente.No entanto, a opção "Uso de MFC" é armazenada com o arquivo do projeto, portanto não posso dizer como isso seria traduzido em um script de construção personalizado.
A primeira inclusão deve ser
#include <afx.h>
e você não pode incluir windows.h antes disso.Normalmente, essa é a primeira inclusão em stdafx.h se você usar cabeçalhos pré-compilados.Fora isso, outros cabeçalhos MFC podem ser incluídos livremente conforme necessário.
Duvido que este seja o fim da história, fazer o MFC brincar com qualquer coisa é doloroso, e às vezes é mais fácil desistir :) Uma rápida pesquisa no Google revela que existem soluções, mas envolvem código adicional e são bastante antigas.
Outras dicas
bem, você já sabe disso, apenas deixe mais claro:
Adicionar arquivo .pro:DEFINE += IB_USE_STD_STRING
evite usar MFC CString