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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top