Pregunta

Tengo un proyecto QT y me gustaría usar una biblioteca externa que incluya "afxstr.h". El problema es que cada vez que compile después de enlazar al lib y incluir su encabezado, recibo un error:

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

Por supuesto, mi proyecto no es un proyecto MFC y no puedo usar Atlstr.h, en su lugar, porque no es mi biblioteca.

Estoy buscando una solución rápida!

Estoy usando vs2010.

El LIB en cuestión es el API de corredores interactivos .

¿Fue útil?

Solución

El ajuste respectivo es propiedades de configuración / general, uso de MFC.

La opción del compilador implica a partir de esa is / d "_afxdll" cuando se usa MFC en un DLL. En cuanto a las opciones de enlazador, curiosamente la conexión explícita de las bibliotecas de importación de Windows (como kernel32.lib) se eliminan.

Visual Studio parece encontrar las bibliotecas respectivas automáticamente.Sin embargo, la opción "Uso de MFC" se almacena con el archivo del proyecto, por lo que no puedo decir cómo se traduce en un script de compilación personalizado.

La primera incluir debe ser

#include <afx.h>

y no puede incluir windows.h antes de eso.Normalmente, esa es la primera inclusión en STDAFX.H Si usa encabezados precompiles.Aparte de eso, otros encabezados de MFC se pueden incluir libremente según sea necesario.

Dudo que este sea el final de la historia, la que juegue MFC con cualquier cosa es dolorosa, y a veces es más fácil rendirse :) Un Google rápido revela que hay soluciones, pero involucran un código adicional y son más bien viejos..

Otros consejos

Bueno, ya lo sabes, solo hazlo más claro:

.pro archivo Añadir: Define += ib_use_std_string

EVITAR USO MFC CSRING

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top