1

我们有一个旧的 C++ 应用程序,它有一个服务层。将使用 C# 开发一个新应用程序。在完成之前,应该在他们之间共享东西。C# 中的新项目可能需要在现有系统中实现,反之亦然。

现有层中的服务消息由带有命令的文本字符串组成。我需要在现有服务和 C# 中的新服务之间建立一个代理。

我想我在服务中至少需要两个输入 (C++/C#) 和两个输出 (C++/C#) 函数,除非最好使输入和输出更通用。

任何人都有这样的服务示例,它充当系统之间的桥梁(交换文本字符串)?例如,是否为此推荐 WCF?

谢谢

问候, Nakori

4

1 回答 1

2

为了您需要在 C# 中快速支持 C++ 代码,您可以考虑使用包装器,如http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than所示-10 分钟#A8

这里这里还有更多示例。

在制作 C# 本机代码时,它将提供一个临时解决方案。

您还可以使用 Platform Invoke(此处提供教程和示例):

  • 您需要做的是为非托管 DLL 中的每个函数创建一个函数头;
  • 向 .NET 指定函数所在的 DLL;
  • 现在您可以像使用任何普通的 .NET 函数一样使用这些函数中的任何一个。

您需要特别注意正确匹配数据类型,这有助于为基于 C++ 的代码提供函数定义以帮助定义 C# 代码。

如果您需要更多信息,请与我们联系:)

于 2013-11-13T09:23:45.377 回答