2013-03-12 5 views
0

나는변경 사항을 유지하는 방법은 무엇입니까?

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 :: 쇼 MainScreen.cpp() 함수 그러나이

MainScreen->Show(&d2DResources); 

같은이라고, 보인다 가질 수 pD2DResources은에 DrawScreen()를 호출로 MainScreen :: Show() 함수, & pBitmap에 저장된 내용이 저장되지 않았습니다. 사실, 처리되지 않은 예외가 발생하고 pBitmap의 값을 받아야하는 pCurrentScreen은 0x00000000입니다.

어떻게해야합니까? 아시다시피

+0

아니면 작은 코드 조각에 문제가 있습니까? –

+0

몇 가지 사항을 변경했는데 이제는 효과가 있습니다. –

답변

0

는 LoadBitmapFromFile 기능은 그래서 당신은

그러나 왜 pD2DResources-> GetpCurrentScreen() pBitmap에 할당 않았다 LoadBitmapFromFile 기능의 주장을 확인해야
실패?
다음 줄에서는 pBitmap에 LoadBitmapFromFile 함수가 다시 할당됩니다.

또한 MainScreen의 Show 함수가 모든 프레임을 호출하면 효율적이지 않습니다.
비트 맵을 모든 프레임을로드 할 필요가 없기 때문에.
그리고 d2d 비트 맵을 공개해야합니다.

관련 문제