【发布时间】:2010-12-27 07:56:50
【问题描述】:
我正在尝试了解从非托管 C++ 调用 C# 库实现的选项。
我的顶级模块是一个非托管 C++ COM/ATL dll。我想集成现有托管 C# dll 的功能。我有,并且可以重新编译这两个库的源代码。
通过阅读 MSDN 上的 this overview 和 this SO question 之类的文章,我了解到可以创建一个“混合模式”dll,它允许本机 C++ 代码调用 C# 库。
我对这种方法有几个问题:
- 如何进行设置? 我可以简单地更改一些属性吗 在现有的 COM/ATL 项目上 允许使用 C# 模块?
- 这些混合模式调用将如何 与 COM 互操作的性能不同 电话?有没有共同的字符串 可用于防止的格式 之间的转换或深拷贝 模块?
- 如果创建了这个 dll 混合模式,还能这样吗 以相同的方式接口/使用 它的 COM 客户端,或者他们需要 了解混合模式吗?
- 包含 CLR 是否会带来实质性的影响 加载此 COM 对象时的开销?
我是 Windows 开发新手,所以如果问题陈述中的任何内容需要澄清或更正,请发表评论。
提前致谢。
【问题讨论】:
标签: c# c++ com com-interop mixed-mode