"无法由运行时封送器封送"是什么意思?

Bri*_*per 16 c# asp.net visual-studio-2008

编译C#ASP.NET应用程序时,我从Visual Studio 2008中收到奇怪的警告.有人能指出这个警告意味着什么的解释(用几个音节的话来说,如果可能的话)?

运行时封送器无法对"IasHelper.Process"的至少一个参数进行封送处理.因此,这些参数将作为指针传递,并且可能需要操作不安全的代码.

Chr*_*ich 10

Marshal类负责将非托管代码/类转换为托管类,反之亦然.请参阅Marshal类的msdn文档.

如果你包含一些互操作程序集来访问COM对象,那么可能发生Marshal(l)er无法处理操作.因此,你的程序中运行准非托管部分,这反过来会导致缓冲区溢出等令人讨厌的事情.因此,您可以离开托管代码的安全,舒适的世界,进入C/C++和他们可怕的兄弟的通风,危险的领域.:-)


SSh*_*bly 8

听起来你正在引用一个ActiveX对象,它给tlbimp.exe一个艰难的时间来整理COM和.NET之间的一些方法和结构成员的参数.

这可能发生在干净的构建期间,因为这是tlbimp必须运行的唯一时间.尝试做一个你没有先清理的正常构建.