|
分類:[VB.NET/VB2005 以降]
言語=VB2013です。 各プロジェクトで使用するライブラリを作成しています。 ターゲットプラットフォームはAny CPUです。 このライブラリに、32bitのC++で作成したDLLを使った処理を組み込もうとしていますが、 元のアプリが64bitで動作する場合、32bitのDLLをそのまま呼び出せないので、 回避策として、上記ライブラリから32bitの別プロセスを呼び出し、 そのプロセス内で32bitのDLLを使用しています。
とりあえずこれでうまく動作したのですが、 上記ライブラリと32bitプロセス間のデータのやり取りで問題が出ました。 上記ライブラリが32bitプロセスを呼ぶ際に、処理結果のXMLファイルのパスを渡し、 32bitプロセス側で処理結果をこのXMLファイルに書き込む、 という方法でデータの受け渡しをやってみました。 データ量が少ない場合はこれで良いのですが、 32bitプロセスが返すデータ量がとても多かったり、何度もこのやり取りを繰り返すと I/O処理に時間がかかってしまいます。 このデータをメモリ上でやり取りすることは出来ないでしょうか? 64bit⇔32bit間では無理なのでしょうか? あるいはメモリの一部を仮想ドライブとして、そこで 各プロセス間のファイルのやり取りをする、なんて方法はないでしょうか?
|