我正在使用一個庫,他們使用路徑來定義輸入和輸出文件的數據讀取/寫入。從字符串創建FILE *
App1
寫入輸入文件,App2
讀取該輸入文件並創建輸出文件。然後,App1
讀取輸出,每個人都很高興。
現在我們得到App1
和App2
之間的通訊不再需要創建文件了。因此,App1
應將緩衝區傳遞到App2
(簡單的char*
)以及App2
應將結果寫入的預分配輸出緩衝區。
不幸的是,在App2
中使用的整個庫中,使用FILE*
來讀取/寫入。
所以,這裏的問題:我能實現– 它無需重寫由應用2 使用的庫–(或小的變化),我可以使用來自App1
通過緩衝區App2
的信息交流?恕我直言,這將需要我可以創建一個FILE*
從緩衝區沒有那FILE*
在磁盤上。
我讀到.NET的我可以使用System.IO.StringReader
類,但由於我使用普通的C++和沒有.NET,我不能使用這些東西。
額外的好處:
呼叫者(即App1
)被託管代碼(C#應用程序),則被叫方(即App2
)是一個普通的C++ DLL(即App1
在DLL調用的函數)。
編輯:
我贊成的答案,其中數據交換可以在調用者傳遞的緩衝區到被叫方,被叫方從輸入緩衝區讀取和寫入到輸出緩衝區的方式同步發生,那麼被調用者終止並且調用者可以讀取緩衝區的內容。
對於最後一部分,只需在調用者中創建一個處理被調用者的線程即可。 – MSalters
@ MSalters:hm。這將是結果。試圖避免這... – eckes