14

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

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

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

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

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

我有点迷路了...

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

提前致谢!

4

3 回答 3

28

还有一个.lib文件:

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

于 2011-12-28T14:22:49.087 回答
2

IWICImagingFactory 在wincodec.idl中定义

  • 找到并添加wincodec.idl到您的 MFC 项目
  • 重建和 MIDL 编译器将生成wincodec_i.cwincodec_i.h
  • wincodec_i.*文件包含 _IID_IWICImagingFactory 的声明和定义
于 2011-11-08T00:20:49.423 回答
0

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

midl thefile.idl

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

于 2013-11-13T17:07:57.033 回答