【问题标题】:visual studio building error: unresolved external symbol _IID_IWICImagingFactory (MFC static lib)Visual Studio 构建错误:未解析的外部符号 _IID_IWICImagingFactory(MFC 静态库)
【发布时间】:2011-12-24 00:32:27
【问题描述】:

我在一个 SDI(启用文档/视图)项目中编写了一个带有几个标准对话框的程序。

现在我想把它发送给一些朋友,我确实设置了Use of MFCUse MFC in a static library

但是当我尝试构建解决方案时,我收到以下错误:

错误 LNK2001:无法解析的外部符号 _IID_IWICimagingFactory

我的问题是,我不知道这个接口 id 到底是什么,因为我没有手动为 COM 编写任何代码,也没有使用任何图像工厂的东西或类似的东西......

我有点迷路了……

谁能告诉我如何解决这个问题并使其与静态 MFC 一起使用?

提前致谢!

【问题讨论】:

标签: c++ visual-studio visual-studio-2010 mfc unresolved-external


【解决方案1】:

IWICImagingFactory 在 wincodec.idl

中定义
  • 找到 wincodec.idl 并将其添加到您的 MFC 项目中
  • 重建和 MIDL 编译器将生成 wincodec_i.cwincodec_i.h
  • wincodec_i.* 文件包含 _IID_IWICImagingFactory 的声明和定义

【讨论】:

    【解决方案2】:

    还有一个.lib文件:

    C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\ windowscodecs.lib

    【讨论】:

    • x64 上的路径是 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\windowscodecs.lib
    • 我必须确保 windowscodecs.lib 实际上已添加到链接器库路径中才能解决此问题
    【解决方案3】:

    这不是我的确切问题(不同的 .idl),而是相同的链接器错误。谷歌还是找到了你的问题。我将 .idl 文件复制到一个新目录,启动 VS 命令行,然后运行:

    midl thefile.idl
    

    在它生成我的 .c 文件后,我只是复制了我需要的 IID 的 const,然后扔掉了其余的。

    【讨论】:

      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2020-04-30
      相关资源
      最近更新 更多