VS中的奇怪警告

时间:2012-05-23 10:22:50

标签: c# .net warnings com-interop

我收到很多像这样的警告,而且我不知道他们的意思。

有谁知道这是什么?

“'IOleWindow.GetWindow'中至少有一个参数不能由运行时封送程序封送。因此,这些参数将作为指针传递,并且可能需要操作不安全的代码。”

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

有关。

3 个答案:

答案 0 :(得分:2)

您可以使用Type Library Importer (tblimp)在Visual Studio外部导入DLL,并使用生成的引用而不是让Visual Studio创建它,从而删除警告。

答案 1 :(得分:1)

对情况can be found here的好解释:

  

您可以放心地忽略这些警告。你可以找到更多相关信息   咨询本页面的问题:   http://msdn.microsoft.com/en-us/library/aa289520%28v=vs.71%29.aspx

     

“输入/输出C风格阵列”部分特别相关。   底线:如果返回指定方法的缓冲区中的   警告接受“in”值,你必须申请   文章中的修改。但由于所有列出的方法只   处理缓冲区,警告对你和你没有任何影响   框架。

     

但是,如果你想永久摆脱警告(当你   例如,做一个“全部重建”,你将无从继续   正如文章中所描述的那样。您将不得不拆卸互操作   包装器(使用ildasm),编辑IL并重新组装(使用ilasm)。这个   过程也被称为“创造性的圆形绊倒”。

答案 2 :(得分:0)

警告消息的主要问题是它只表示项目不是有问题的COM,所以消除过程似乎是追踪它的唯一方法。