Я использую библиотеку, в которой они использовали пути для определения входных и выходных файлов, в которые данные считываются / записываются.
App1
записывает входной файл, App2
читает этот входной файл и создает выходной файл. Затем App1
читает результат, и все счастливы.
Теперь мы получаем требование, чтобы для связи между App1
и App2
больше не создавалось файлов. Следовательно, App1
должен передать буфер в App2
(простой char*
) вместе с предварительно выделенным выходным буфером, где App2
должен записать результаты в.
К сожалению, во всей библиотеке, которая используется в App2
, FILE*
используется для чтения из / записи в.
Итак, вот вопрос: могу ли я достичь & ndash; это без переписывания библиотеки, используемой App2 & ndash; (или с небольшими изменениями), что я могу использовать буферы, переданные от App1
до App2
для обмена информацией? ИМХО, это потребовало бы, чтобы я мог создать FILE*
из буфера, не имея этого FILE*
на диске.
Я читал, что для .NET я мог бы использовать класс System.IO.StringReader
, но, поскольку я использую простой C ++ и не .NET, я не могу использовать этот материал.
Дополнительный бонус:
Вызывающая сторона (т. Е. App1
) - это управляемый код (приложение C #), вызывающая сторона (т. Е. App2
) - простая DLL C ++ (т.е. App1
вызывает функцию в этой DLL).
Edit:
Я бы предпочел ответы, где обмен данными мог бы происходить синхронно таким образом, чтобы вызывающая сторона передавала буферы вызываемой стороне, вызываемая сторона считывала из входного буфера и записывала в выходной буфер, затем вызываемая сторона заканчивала работу, и вызывающая сторона могла читать содержимое буферы.