使用 64 位应用程序中的 32 位库与 perl 或 neko

本文关键字:perl neko 应用程序 使用 | 更新日期: 2023-09-27 17:55:49

我知道,这通常是个问题,但我想更多地了解这个主题。

我们有用 C# 编写的应用程序,它被编译为 x64。它必须编译为 x64,因为它是我们客户的要求。最近,我们发现我们有旧的德尔菲代码(叹息)和非常有用的模块,我必须测试(双重叹息)。出于某种愚蠢的原因,我一定不能用 delphi 7 以外的任何东西编译这个模块。所以我被困在这个模块的 x32 .dll和 x64 应用程序来使用它。

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

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

谢谢!

使用 64 位应用程序中的 32 位库与 perl 或 neko

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

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

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