我读(在完成Sivakumar的书 C++/CLI在行动 在其他地方),应使用__clrcall装饰在功能的电话,以避免双thunking,在情况下在哪里你知道的方法将永远不会被称为从未管理的代码。Nish还说,如果签名方法包含任何CLR类型,然后JIT编译器将会自动添加__clrcall.什么是我不清楚的是,如果我需要包括__clrcall当我创造C++/CLI的性质。在某种意义上说,属性只能从。网络语言,另一方面C++/CLI compiler(I think)只产生的方法(例如***_get()),可从两个管理和无管理的代码。所以我需要使用__clrcall剂在我的特性,并如果可以,哪里去了?在get/set功能自己?

有帮助吗?

解决方案

@B迈克-谢谢你的提示在ildasm-我不知道关于那个工具。

它的出现,我误解/误解了完成的-__clrcall修改和双thunking问题,它不仅适用于方法的本地课程。所有的方法管理类__clrcall默认情况下--这似乎是显而易见,在回想起来。

显然马库斯Heege的书 专家C++/CLI 可是 作为一个免费下载, 和它有一个很好的表上,第215页,总结了调用公约。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top