Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ visual studio生成错误:未解析的外部符号_IID_iwimagingFactory(MFC静态库)_C++_Visual Studio_Visual Studio 2010_Mfc_Unresolved External - Fatal编程技术网

C++ visual studio生成错误:未解析的外部符号_IID_iwimagingFactory(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

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

现在我想把它发送给一些朋友,我确实设置了在静态库中使用MFC的
用法

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

错误LNK2001:未解析的外部符号_IID_iwimagingFactory

我的问题是,我不知道这个接口id到底是什么,因为我没有手动为COM编写任何代码,也没有使用任何image factory之类的东西

我有点迷路了

有谁能告诉我如何解决这个问题,并使它与静态MFC的使用


提前谢谢

iwicmagingfactory在wincodec.idl中定义

  • 找到并将wincodec.idl添加到MFC项目中
  • 重建和MIDL编译器将生成wincodec_i.cwincodec_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实际添加到链接器库路径才能解决此问题