为什么会出现错误C3505:“无法加载类型库”?

时间:2015-09-21 11:43:34

标签: c++ com 32bit-64bit

我有编译错误: “错误C3505:无法加载类型库”。

我有一个COM 32/64位组件,在两种配置中都使用msvc 2012成功编译。我还有一个测试应用程序,它在开始时使用以下行加载此COM组件:

 #define ID_STRING "libid:c734d1af-8cbe-4cae-b501-165099037e41"

 #import ID_STRING version("0.1") no_namespace

在32位版本中,一切正常。但在64位我看到上面提到的编译器错误。它说here问题在于WOW比特的东西。我检查了注册表。可以在两个节点中找到相应的类型库:

  • HKEY_CLASSES_ROOT\TypeLib\{c734d1af-8cbe-4cae-b501-165099037e41}
  • HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{c734d1af-8cbe-4cae-b501-165099037e41}

那我错在哪里?

UP:我发现了一个问题。编译尝试从32位dll加载类型库(仅在编译阶段,在运行时程序中使用64位版本)。所以问题是如何使编译器在编译时使用64位类型库。

0 个答案:

没有答案