Как сохранить изменения?

У меня есть MainScreen.cpp

void MainScreen::Show(D2DResources* pD2DResources)
{
HRESULT hr = S_OK;

ID2D1Bitmap* pBitmap=pD2DResources->GetpCurrentScreen();

hr = pD2DResources->LoadBitmapFromFile(
pD2DResources->GetpRT(),
pD2DResources->GetpIWICIF(),
L".\\Images\\MainScreen.jpg",
0,
0,
&pBitmap
);

if(SUCCEEDED(hr))pD2DResources->DrawScreen();
}

и в какой-то момент функция MainScreen :: Show () вызывается так

MainScreen->Show(&d2DResources);

Однако, похоже, что, поскольку pD2DResources вызывает функцию DrawScreen () в функции MainScreen :: Show (), все, что было сохранено в &pBitmap не сохранил. На самом деле, я получаю необработанное исключение, и, как это происходит, pCurrentScreen, который должен был получить значение pBitmap, равен 0x00000000.

Что я должен делать?

0

Решение

Как вы знаете, функция LoadBitmapFromFile не удалась
Поэтому вы должны проверить аргументы функции LoadBitmapFromFile

Однако, почему вы назначили pD2DResources-> GetpCurrentScreen () для pBitmap ??
На следующей строке pBitmap снова будет назначена функция LoadBitmapFromFile.

Кроме того, если функция Show MainScreen вызывает каждый кадр, это неэффективно.
Потому что вам не нужно загружать растровые изображения в каждом кадре.
И растровое изображение d2d должно быть выпущено.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector