Qt — C++ — фатальная ошибка C1083: не удается открыть включаемый файл: «afx.h»

Здесь я описываю шаги, которые я выполнил, чтобы попытаться построить следующий проект C++:

http://sourceforge.net/projects/twain-samples/files/TWAIN%202%20Sample%20Application/

На Microsoft Windows 7 - 64 бит. Моя конечная цель — сохранить функциональность и добавить параметры командной строки, чтобы я мог запускать его в пакетном файле, потому что сейчас это программное обеспечение на основе меню.

  1. Установка сообщества Qt Creator

    • Version 3.5.0 (based on Qt 5.5.0 (MSVC 2013, 32 bit)
    • Kits available:
      • Desktop Qt 5.4.2 MSVC2013 64bit2
      • Рабочий стол Qt 5.5.0 MSVC2010 32bit
      • Рабочий стол Qt 5.5.0 MSVC2012 32bit
      • Рабочий стол Qt 5.5.0 MSVC2013 32bit
      • Рабочий стол Qt 5.5.0 MSVC2013 64bit
  2. Загрузка библиотеки Freeimage (двоичный файл)

  3. Установка библиотеки Freeimage

    • Uncompress FreeImage3170Win32Win64.zip
    • откройте папку FreeImage\Dist\x64
    • Скопируйте freeimage.dll в папку C:\Windows\System32.
  4. Загрузка и распаковка проекта Twain

  5. Добавление заголовочного файла и библиотеки Freeimage в проект

    • copy Freeimage.h in the common folder
    • создайте папку lib в папке Twain_App_sample01\src
    • скопируйте freeimage.lib в папку Twain_App_sample01\src\lib
  6. Настройка проекта в Qt Creator

    • launch Qt Creator
    • в Qt нажмите Открыть проект.
    • выберите файл src.pro в папке Twain_App_sample01\src
    • в Настроить проект выберите комплект Desktop Qt 5.5.0 MSVC2013 64bit.
    • нажмите кнопку Настроить проект.
  7. Создайте и используйте функцию преобразования строк

    • в исходный файл DSMInterface.cpp добавьте эту функцию:

      wchar_t *convertCharArrayToLPCWSTR(const char* charArray)
      {
          wchar_t* wString=new wchar_t[4096];
          MultiByteToWideChar(CP_ACP, 0, charArray, -1, wString, 4096);
          return wString;
      }
      
    • в DSMInterface.cpp, функция LoadDSMLib, заменить

      if((gpDSM=LOADLIBRARY(_pszLibName)) != 0)
      

      с

      if((gpDSM=LOADLIBRARY(convertCharArrayToLPCWSTR(_pszLibName))) != 0)
      
  8. Подборка — часть 1

    • Now i get a message from the linker:

DSMInterface.obj:-1: error : LNK2019: unresolved external symbol "int __cdecl VerifyEmbeddedSignature(wchar_t const *)" (?VerifyEmbeddedSignature@@YAHPEB_W@Z) referenced in function "bool __cdecl LoadDSMLib(char *)" (?LoadDSMLib@@YA_NPEAD@Z)

Я добавил в проект файл Twain_App_sample01\src\VerifySignature.cpp, и теперь это сообщение исчезло (спасибо за это Итаю Грудеву)

  1. Compilation - part 2
    • I have another message now

..\src\VerifySignature.cpp(13) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory


person Community    schedule 09.10.2015    source источник
comment
С форума Twain You need to include the VerifySignature.cpp source file. Depending on your OS you may need to comment out the following variable WinTrustData.dwUIContext = 0;   -  person Itay Grudev    schedule 09.10.2015
comment
Похоже, он использует MFC. У вас установлен МФЦ? Это не часть версии сообщества Visual Sudio.   -  person Ben    schedule 09.10.2015


Ответы (1)


На самом деле я начал с неправильного инструмента. Спасибо Бен, который направил меня на правильный путь. Мне нужен был МФЦ. Итак, правильное решение — использовать Visual Studio 2015. Я мог бы построить его с этим.

person Community    schedule 14.10.2015