[WinAPI] strumień pamięciowy

0

Czy odpowiednikiem binarnego strumienia pamięciowego dla WinAPI jest File Mapping ? Nie ma czegoś prostszego (tzn. coś lokalnego dla procesu) ? Chodzi mi o to aby pisać do pamięci (w obrębie jednego procesu) dane funkcją WriteFile tak, aby bufor zwiększał się samemu w miarę potrzeb. Następnie te dane chcę periodycznie wstrzykiwać do nazwanej globalnej rurki.

0

Użyj uniwersalnego IStream:

IStream *stream;
if (!CreateStreamOnHGlobal(0, TRUE, &stream))
{
	stream->Write("cośtam", sizeof("cośtam")-1, NULL);
	stream->Write(" 3", 2, NULL);
	...
	HGLOBAL hgl;
	// ostatnia szansa by zakończyć stream NULL'em
	hgl = 0;
	stream->Write(&hgl, 1, NULL);

	if (!GetHGlobalFromStream(stream, &hgl))
	{
		char *text = GlobalLock(hgl);
		...
		GlobalUnlock(hgl);
	}
	stream->Release();
}
0

Właśnie zależy mi na WriteFile, bo chcę to podpiąć pod standardowy interfejs przyjmujący HANDLE.
Ale jest to jakaś alternatywna droga, może będzie się dało przystosować resztę.

Może istnieje jakiś pomost między IStream <-> HANDLE ? Poszukam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1