문제

Qt 프로젝트가 있고 "afxstr.h"가 포함 된 외부 라이브러리를 사용하고 싶습니다. 문제는 내가 lib에 연결하고 헤더를 포함하여 컴파일 할 때마다 오류가 발생합니다.

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

물론 내 프로젝트는 MFC 프로젝트가 아니며 내 도서관이 아니기 때문에 대신 ATLSTR.H를 사용할 수 없습니다.

빠른 해결책을 찾고 있습니다!

vs2010을 사용하고 있습니다.

문제의 lib는 대화 형 브로커 API .

도움이 되었습니까?

해결책

각 설정은 구성 특성 / 일반, MFC의 사용입니다.

DLL에서 MFC를 사용할 때는 해당 컴파일러 옵션이 / d "_afxdll"에서 암시 된 컴파일러 옵션입니다. 링커 옵션은 Windows 가져 오기 라이브러리의 명시 적 연결 (예 : kernel32.lib)을 제거합니다.

Visual Studio는 각 라이브러리를 자동으로 찾는 것 같습니다.그러나 "MFC 사용"옵션은 프로젝트 파일과 함께 저장되므로 사용자 정의 빌드 스크립트로 어떻게 변환되는지 말할 수는 없습니다.

첫 번째 포함은

여야합니다.
#include <afx.h>
.

및 그 전에 Windows.h를 포함 할 수 없습니다.일반적으로 미리 컴파일 된 헤더를 사용하는 경우 stdafx.h에 첫 번째 포함됩니다.그 외에도 다른 MFC 헤더는 필요에 따라 자유롭게 포함될 수 있습니다.

이것은 이것이 이야기의 끝이며, 어떤 것들을 가지고 노는 것처럼 고통스럽고 때로는 포기하는 것이 더 쉽습니다 :) 빠른 Google은 솔루션이 있음을 알 수 있지만 추가적인 코드가 포함되어 있으며 오히려 오래된 코드가 포함되어 있습니다..

다른 팁

글쎄, 당신은 이미 이것을 알고 있습니다. 그냥 더 분명하게 만드십시오 :

.pro 파일 추가 : += ib_use_std_string

를 정의하십시오

MFC CSTRING을 사용하지 마십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top