0

我有一些 c++ .lib 文件,我想创建一个 WCF 服务,在其中可以调用所有用 lib 文件编写的函数,最后可以在分布式系统(web、android、iphone)中使用。

疑点:

  • 我是否需要一个 DCOM 对象来将 cpp lib 与 c# 通信,然后在 WCF 中调用 DCOM dll。
  • WCF 服务是否从 cpp 自动编组到 c#(使用 System.Runtime.InteropServies)

    - 我不确定 WCF 中的后期绑定是否可以发挥作用?

我在 rnd 中发现的一些要点。

  • 我知道如何在 vc++ 中从 .lib 文件创建 dll,但这里的问题是“c# 代码中 cpp 类函数的交集”。. 在 cpp 中的示例,我创建了一个函数 getData(char* ch)。现在如何调用这个传递字符串的函数,比如说;“你好世界”。它给出了一个错误(不能重载到数据类型 SByte*)。试过 Sbyte.Parse() 和 Sbyte.TryParse() 但没有运气。

如果这听起来令人困惑,我很抱歉,但任何形式的链接或示例代码的帮助都将受到高度赞赏。谢谢, 阿拜

4

1 回答 1

0

C++ 库已经是 COM 或其他组件技术,还是只是与 COM 无关的 C++ 代码?在前一种情况下,您可以将 COM 作为引用(必须是 .dll)添加到 .NET 项目,但您必须自己编组(处理正确的 COM 版本)。在后一种情况下,它只是正确地使用 C++/CLI 来包装您的本机 C++ 方法,或者直接将它们公开为 WCF 服务,或者将包装器作为 .NET 库提供给 WCF 服务项目。当然,您必须手动处理托管和非托管内存之间的字符串和其他对象转换,但这就是 C++/CLI 的意义所在。

于 2011-12-14T19:19:57.107 回答