LPDIRECTDRAWSURFACE  Main_Screen;   这是个定义,由于程序原因,我想通过LPDIRECTDRAWSURFACE  *P来操作这个Main_Screen,不知道如何做.
LPDIRECTDRAWSURFACE  *P;
P = Main_Screen;//这样写编译通过不了
P = &Main_Screen;//这样取Main_Screen地址编译是没问题,但是Client_First->ddraw就无法操作了,不知道如何才好,那位高人能HELLP下.LPDIRECTDRAWSURFACE Screen->Blt(&Rect(1,1,120,120),P,&Rect(0,0,120,120), DDBLT_WAIT , NULL);象这样是无法运行的

解决方案 »

  1.   

    如果这样用
    LPDIRECTDRAWSURFACE  Main_Screen;
    LPDIRECTDRAWSURFACE  P;
    P = Main_Screen;
    LPDIRECTDRAWSURFACE Screen->Blt(&Rect(1,1,120,120),P,&Rect(0,0,120,120), DDBLT_WAIT , NULL);
    这样的话没有任何的问题,那余下的问题是LPDIRECTDRAWSURFACE  P; 又定义了一个P,这样的话占用的内存不就太大了,没有必要吧,如果用*P去指向Main_Screen的话特别好,结省内存.
      

  2.   

    LPDIRECTDRAWSURFACE  Main_Screen;  
    LPDIRECTDRAWSURFACE  *P;
    P = &Main_Screen;
    LPDIRECTDRAWSURFACE Screen->Blt(&Rect(1,1,120,120), *P,&Rect(0,0,120,120), DDBLT_WAIT , NULL);