0

MSDN のコードには、次のようなものがあります。

HRESULT DemoApp::LoadBitmapFromFile(
    ID2D1RenderTarget *pRenderTarget,
    IWICImagingFactory *pIWICFactory,
    PCWSTR uri,
    UINT destinationWidth,
    UINT destinationHeight,
    ID2D1Bitmap **ppBitmap
    )

この:

hr = LoadBitmapFromFile(
                m_pRenderTarget,
                m_pWICFactory,
                L".\\sampleImage.jpg",
                100,
                0,
                &m_pBitmap
                );

m_pBitmap が、実際には ID2D1Bitmap オブジェクトへのポインターではなく、ID2D1Bitmap オブジェクト (ID2D1Bitmap *m_pBitmap) へのポインターである場合、どのように機能するのでしょうか?

4

3 に答える 3

4

渡される引数は ではなく であることに注意してm_pBitmapください&m_pBitmap

m_pBitmapが a の場合ID2D1Bitmap*、 でそのアドレスを&取得するID2D1BitMap**と、関数が期待するのと同じように、ポインターへのポインターが得られます。

于 2013-03-12T16:54:24.960 に答える
2

ポインターのアドレスを取得すると、ポインターへのポインターになります。

int i = 0;
int *pi = &i // &i is the address of i (or a pointer to the int i)
&pi // &pi is the address of pi (or a pointer to the pointer to i)

したがって、&m_pBitmapポインターへのポインターを作成します。

于 2013-03-12T16:54:36.970 に答える
0

ポインターのアドレスを渡すと、パラメーター ポインターが正確な型のポインターになります。

于 2013-03-12T16:58:09.993 に答える