C++ visual studio生成错误:未解析的外部符号_IID_iwimagingFactory(MFC静态库)
我在一个SDI(启用文档/视图)项目中编写了一个带有几个标准对话框的程序包 现在我想把它发送给一些朋友,我确实设置了在静态库中使用MFC的C++ visual studio生成错误:未解析的外部符号_IID_iwimagingFactory(MFC静态库),c++,visual-studio,visual-studio-2010,mfc,unresolved-external,C++,Visual Studio,Visual Studio 2010,Mfc,Unresolved External,我在一个SDI(启用文档/视图)项目中编写了一个带有几个标准对话框的程序包 现在我想把它发送给一些朋友,我确实设置了在静态库中使用MFC的用法 但是,当我尝试构建解决方案时,会出现以下错误: 错误LNK2001:未解析的外部符号_IID_iwimagingFactory 我的问题是,我不知道这个接口id到底是什么,因为我没有手动为COM编写任何代码,也没有使用任何image factory之类的东西 我有点迷路了 有谁能告诉我如何解决这个问题,并使它与静态MFC的使用 提前谢谢 iwicmagi
用法
但是,当我尝试构建解决方案时,会出现以下错误:
错误LNK2001:未解析的外部符号_IID_iwimagingFactory
我的问题是,我不知道这个接口id到底是什么,因为我没有手动为COM编写任何代码,也没有使用任何image factory之类的东西
我有点迷路了
有谁能告诉我如何解决这个问题,并使它与静态MFC的使用
提前谢谢 iwicmagingfactory在wincodec.idl中定义
- 找到并将wincodec.idl添加到MFC项目中
- 重建和MIDL编译器将生成wincodec_i.c和wincodec_i.h
- wincodec_i.*文件包含_IID_iwimagingFactory的声明和定义
还有一个.lib文件:
C:\Program Files\Microsoft SDK\Windows\v7.0A\Lib\windowscodecs.Lib这不是我的问题(不同的.idl),而是相同的链接器错误。谷歌找到了你的问题。我将.idl文件复制到一个新目录,启动了一个VS命令行,并运行了以下命令:
midl thefile.idl
在它生成.c文件后,我只是复制了所需IID的常量,并丢弃了其余部分。很难猜测这个链接器错误与MFC有什么关系。然而,项目+属性、链接器、输入。其他依赖项,添加“windowscodecs.lib”请参阅此处的相关讨论:x64上的路径是C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\lib\windowscodecs.libI必须确保windowscodecs.lib实际添加到链接器库路径才能解决此问题