-1

非常によく質問されることは承知していますが、この件についてもう少し知りたいと思います。

x64 にコンパイルされた C# で記述されたアプリケーションがあります。これはお客様の要件であるため、x64 にコンパイルする必要があります。最近、非常に役立つモジュールを備えた古い Delphi コード ( ため息 )あることを発見しました。なんらかの馬鹿げた理由で、このモジュールを Delphi 7 以外でコンパイルしてはいけません。そのため、このモジュールの x32 .dll と x64 アプリケーションを使用することに固執しています。

私はすでに IPC 通信の回避策を発見しましたが、perlには精通しており、最近nekoを発見しました。私が知る限り、perl はグルー コードに使用され、neko は異なる言語間でランタイムを共有するために使用されます。それで、perl、neko、または何か他のものを使用した回避策があるのではないでしょうか?

また、neko で 2 つの言語間でランタイムを共有するサンプル コードを提供できれば、非常にありがたいです。

ありがとうございました!

4

1 に答える 1

4

Perl も Neko も、64 ビット プロセスでこの 32 ビット ライブラリを使用するのに役立ちません。Perl または Neko のいずれかを使用しようとすると、2 つのモジュール間にさらに多くのレイヤーを挿入することになります。

いずれかの形式の IPC を使用する必要があります。それを行うには多くの方法があります。32 ビット ライブラリ用の 32 ビット C# ホスト プロセスを作成し、標準の .net IPC フレームワークの 1 つを使用して 32 ビットと 64 ビットの C# プロセス間で通信できます。

ただし、これはアウトプロセス COM ソリューションに適しているように見えます。32 ビット DLL の機能を公開するアウトプロセス COM サーバーを作成します。他の COM サーバーと同様に、64 ビット プロセスからその COM サーバーを使用します。

于 2015-06-13T15:09:42.980 に答える