1

我编写了一个 c++/cli 程序,它调用我的本机 c++ 函数,该函数将结构指针作为参数。所以就像我使用 c++/cli 为我的本机 c++ 编写了一个包装器,这样我就可以将它暴露给 c# wcf 程序(它充当另一个 c++ 客户端的服务器)。

现在,当我编译我的 c++/cli 程序时,我没有收到任何错误,它被编译并生成了这个 c++/cli 的 dll,但是当查看输出窗口时,我看到类似这样的东西在链接中失败(它没有'不影响编译)。以下是我在输出文件中看到的消息。

1>Linking...
1>Embedding manifest...
1>Caching metadata information for c:\windows\system32\msxml6.dll...
1>Could not cache metadata for c:\windows\system32\msxml6.dll: reflection failed.

所以我想知道这条消息是什么意思,如果我在 c#wcf 程序中使用这个 c++/cli dll,这是否会影响我的 c#wcf 程序,以及如何摆脱这条消息。

4

1 回答 1

0

我很确定 MSXML6.DLL 是本机 DLL,因此它没有任何托管元数据。

我用 .NET Reflector 验证了这一点:

// Assembly msxml6

  Location: C:\Windows\System32\msxml6.dll
  Name: msxml6, 'C:\Windows\System32\msxml6.dll' is not a .NET module.

确保在 Linker -> Input -> "Additional Dependencies" 项目选项中列出了它的导入库,而不是像 .NET 程序集一样尝试引用它。

于 2012-05-18T21:22:18.323 回答