Visual Studio 生成错误:未解析的外部符号_IID_IWICImagingFactory(MFC 静态库)

visual studio building error: unresolved external symbol _IID_IWICImagingFactory (MFC static lib)

提问人:Juarrow 提问时间:11/8/2011 更新时间:7/2/2015 访问量:20245

问:

我在SDI(启用Doc/View)项目中编写了一个带有一些标准对话框的porgram。

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

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

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

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

我有点迷路了...

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

提前致谢!

C++ 可视化 工作室 2010 MFC 未解析的外部

评论

10赞 Hans Passant 11/8/2011
很难猜测此链接器错误可能与 MFC 有关。尽管如此,项目 + 属性、链接器、输入。其他依赖项,添加“windowscodecs.lib”
0赞 Rami A. 9/13/2013
在此处查看相关讨论:social.msdn.microsoft.com/Forums/vstudio/en-US/...

答:

2赞 parapura rajkumar 11/8/2011 #1

IWICImagingFactory 在 wincodec.idl 中定义

  • 找到 wincodec.idl 并将其添加到 MFC 项目
  • 重新生成和 MIDL 编译器将生成 wincodec_i.c 和 wincodec_i.h
  • wincodec_i.* 文件包含_IID_IWICImagingFactory的声明和定义
30赞 caesarvanou 12/28/2011 #2

还有一个 .lib 文件:

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

评论

1赞 Tamas Demjen 11/20/2013
x64 上的路径是 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\windowscodecs.lib
0赞 Preet Sangha 10/12/2015
我必须确保 windowscodecs.lib 实际上已添加到链接器 lib 路径中才能解决此问题
0赞 Lynn Crumbling 11/14/2013 #3

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

midl thefile.idl

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