6

我有很多这样的警告,但我不知道它们是什么意思。

有谁知道这是什么?

“运行时封送处理程序无法封送 'IOleWindow.GetWindow' 的至少一个参数。因此,此类参数将作为指针传递,并且可能需要不安全的代码来操作。”

我还应该指出它与“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets”有关

4

3 回答 3

2

您可以使用类型库导入器 (tblimp)在 Visual Studio 外部导入 DLL 并使用生成的引用而不是让 Visual Studio 创建它,从而消除警告。

于 2012-05-23T11:18:44.677 回答
1

可以在这里找到很好的情况解释:

您可以放心地忽略这些警告。您可以通过查阅此页面了解有关此问题的更多信息:http: //msdn.microsoft.com/en-us/library/aa289520%28v=vs.71%29.aspx

“In/Out C-Style Arrays”部分特别相关。底线:如果警告中指定方法的返回缓冲区接受“in”值,则必须应用文章中的修改。但是由于所有列出的方法都只处理缓冲区,因此警告对您和框架都没有影响。

但是,如果您想永久消除警告(例如,当您执行“全部重建”时),您将别无选择,如文章中所述。您将不得不反汇编互操作包装器(使用 ildasm),编辑 IL 并重新组装(使用 ilasm)。此过程也称为“创意往返”。

于 2012-05-23T11:24:08.490 回答
0

警告消息的主要问题是它仅指示项目而不是有问题的 COM,因此消除过程似乎是追踪此问题的唯一方法。

于 2012-05-23T11:33:46.320 回答