Qt - C ++ - 致命错误C1083:无法打开包含文件:'afx.h'

时间:2015-10-09 11:36:13

标签: c++ qt twain

这里我描述了我尝试构建以下C ++项目时所遵循的步骤:

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

在Microsoft Windows 7 - 64位上。我的最终目标是保留功能并添加命令行参数,以便我可以在批处理文件中运行它,因为现在,它是一个基于菜单的软件。

  1. 安装Qt Creator社区

    • 版本3.5.0(基于Qt 5.5.0(MSVC 2013,32位)
    • 可用套件:
      • 桌面Qt 5.4.2 MSVC2013 64bit2
      • 桌面Qt 5.5.0 MSVC2010 32位
      • 桌面Qt 5.5.0 MSVC2012 32位
      • 桌面Qt 5.5.0 MSVC2013 32位
      • 桌面Qt 5.5.0 MSVC2013 64位
  2. 下载Freeimage库(二进制)

  3. 安装Freeimage库

    • 解压缩 FreeImage3170Win32Win64.zip
    • 打开文件夹 FreeImage \ Dist \ x64
    • C:\ Windows \ System32 文件夹中复制 freeimage.dll
  4. 下载和解压缩Twain项目

  5. 将Freeimage头文件和lib放在项目中

    • 公共文件夹中复制 Freeimage.h
    • Twain_App_sample01 \ src 文件夹中创建 lib 文件夹
    • Twain_App_sample01 \ src \ lib 文件夹中复制 freeimage.lib
  6. 在Qt Creator中配置项目

    • 启动 Qt Creator
    • 在Qt中
    • ,点击打开项目
    • Twain_App_sample01 \ src 文件夹中选择文件 src.pro
    • 配置项目 选择套件桌面Qt 5.5.0 MSVC2013 64位
    • 点击配置项目按钮
  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部分

    • 现在我收到来自链接器的消息:
  9.   

    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 文件添加到项目中,现在此消息已消失(感谢 Itay Grudev

    1. 编译 - 第2部分
      • 我现在有另一条消息
    2.   

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

1 个答案:

答案 0 :(得分:0)

实际上我是从错误的工具开始的。感谢 Ben ,他让我走上正轨。我需要MFC。 所以正确的解决方案是使用Visual Studio 2015。 我可以用它来构建它。