-1

我知道,这经常是一个问题,但我想了解更多关于这个主题的信息。

我们有应用程序,用 C# 编写,编译为 x64。它必须编译为 x64,因为这是我们客户的要求。最近,我们发现我们有旧的 delphi 代码(sighs)和非常有用的模块,我必须测试(double sighs)。出于某种愚蠢的原因,我不能用其他任何东西编译这个模块,然后是 delphi 7。所以我坚持使用这个模块的 x32 .dll 和 x64 应用程序来使用它。

我已经发现了 IPC 通信的解决方法,但我熟悉perl并且最近发现了neko。据我所知,perl 用于胶水代码,neko 用于在不同语言之间共享运行时。所以也许有一些使用 perl、neko 或其他东西的解决方法?

另外,如果您能提供任何在 neko 中在两种语言之间共享运行时的示例代码,我将不胜感激。

谢谢!

4

1 回答 1

4

Perl 和 Neko 都不会帮助您在 64 位进程中使用这个 32 位库。如果您尝试使用 Perl 或 Neko,您只会在两个模块之间注入更多层。

您将需要使用一种或另一种形式的 IPC。有很多方法可以做到这一点。您可以为 32 位库创建一个 32 位 C# 主机进程,然后使用标准 .net IPC 框架之一在 32 位和 64 位 C# 进程之间进行通信。

但是,这看起来确实非常适合进程外 COM 解决方案。创建一个公开 32 位 DLL 功能的进程外 COM 服务器。从您的 64 位进程中使用该 COM 服务器,就像使用任何其他 COM 服务器一样。

于 2015-06-13T15:09:42.980 回答