В настоящее время я пытаюсь выяснить, как правильно хранить файл CImage в CArchive (JPEG). Мой текущий подход к этому является следующее (псевдо-код):Сериализация: CArchive a CImage
BOOL CPicture::Serialize(CArchive &ar)
{
IStream *pStream = NULL;
HRESULT hr;
CImage *img = GetImage();
if (ar.IsLoading())
{
HGLOBAL hMem = GlobalAlloc(GMEM_FIXED, 54262);
hr = CreateStreamOnHGlobal(hMem, FALSE, &pStream);
if(SUCCEEDED(hr))
{
ar.Read(pStream, 54262);
img->Load(pStream);
pStream->Release();
GlobalUnlock(hMem);
GlobalFree(hMem);
}
}
else
{
hr = CreateStreamOnHGlobal(0, TRUE, &pStream);
if (SUCCEEDED(hr))
{
hr = img->Save(pStream, Gdiplus::ImageFormatJPEG);
if (SUCCEEDED(hr))
ar.Write(pStream, 54262);
}
}
...
Я только сейчас обратно в C++ и только сделал немного с ним в прошлом. Любая помощь будет очень высоко ценится.
спасибо, что заранее.
Как правило, это хорошая идея задать вопрос на сайте Q & A. Вы не задали вопрос. Не совсем ясно, какую проблему вы пытаетесь решить. Работает ли ваш код? Прерывает ли ваш код (если да, как)? Вам просто нужна обратная связь по вашему коду? Вы ищете разработчика для написания кода для вас? Что-то другое? – IInspectable