提问人:Juarrow 提问时间:11/8/2011 更新时间:7/2/2015 访问量:20245
Visual Studio 生成错误:未解析的外部符号_IID_IWICImagingFactory(MFC 静态库)
visual studio building error: unresolved external symbol _IID_IWICImagingFactory (MFC static lib)
问:
我在SDI(启用Doc/View)项目中编写了一个带有一些标准对话框的porgram。
现在我想把它发给一些朋友,我确实设置了.Use of MFC
Use MFC in a static library
但是当我尝试构建解决方案时,出现以下错误:
错误 LNK2001:无法解析的外部符号_IID_IWICImagingFactory
我的问题是,我不知道这个接口 id 到底是什么,因为我没有手动为 COM 编写任何代码,也没有使用任何图像工厂的东西或同等的东西......
我有点迷路了...
谁能告诉我如何解决这个问题并使其与静态 MFC 用法一起使用?
提前致谢!
答:
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 的常量,然后扔掉了其余的。
评论