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

时间:2015-06-13 13:45:55

标签: c# perl delphi shared-libraries neko

我知道,这经常是个问题,但我想对此主题有所了解。

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:4)

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

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

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