1
4
如果您完全控制了该项目,那么更改此类设置不是问题,那么当然可以。你只需要启用
混合模式调用将更快,因为它使用更快的调用约定,并且不会像COM互操作那样执行任何封送(您要么使用固有兼容的类型,要么执行自己的显式转换)。
没有常见的字符串格式-问题是
它可以是相同的接口,但是如果它是通过本机入口点输入的,它将尝试将CLR加载到进程中,除非已经加载了一个。如果调用客户机在调用之前已经加载了clr(或者客户机本身是从托管代码调用的),那么您将得到已经加载的clr,这可能与您的代码所需的clr不同(例如,客户机可能加载了1.1,而您的代码需要2.0)。
这取决于您通过开销定义的内容。代码大小?运行时惩罚?内存占用? 在任何情况下,加载clr意味着您将获得所有GC和JIT机器。这些不便宜。也就是说,如果最终需要调用托管代码,就没有办法解决这个问题——您将 有 将CLR加载到某个进程中以执行此操作。COM互操作和混合模式C++/CLI程序集之间的惩罚不会有所不同。 |
2
0
我不能说太多细节,例如字符串问题,因为我从未积极使用过这种方法。 但是,只要让vs向导为您创建一个代理,您就可以轻松地使用任何C代码中的任何COM接口,除了调用com和.net时一直具有的性能开销外,它没有任何性能开销。
另一个方向,你只需要设置你的组件
嗯! |