100分求解,不够在加!进程间通信问题,高手请进!
crgxw 2009-07-14 10:28:42 我在一个进程(proc1)中对sdl进行初始等操,如下
//proc1.c
SDL_Event WndEvent;
SDL_Surface *_Screen ;
SDL_VideoInfo *_pInfo;
SDL_PixelFormat * _pVfmt;
void main(int argc,char* args[])
{
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0)
{
printf("Init SDL is faild \n");
return false;
}
_Screen = SDL_SetVideoMode(640,380,16,SDL_ANYFORMAT);
_pInfo = (SDL_VideoInfo *) SDL_GetVideoInfo();
_pVfmt = _Screen ->format;
while (SDL_WaitEvent(&WndEvent))
{
..............
}
}
请问,我如何在另一个进程中(proc2)对第一个进程(proc1)中的_Sreen进程操做(如想画一个矩形等操作)那?
如
//proc2.c
void main(int argc,char* args[])
{
SDL_UpdateRect(_Screen,p ->x,p ->y,p ->cx, p ->cy);//注意,这里的_Screen应是在proc1中定义的
}
我现在已经将_Screen共享了(用共享内存的方法),可是在proc2中对_Screen操作时就会出错(个人认为sdl是在proc1中初始化,proc2中没有初始化),请高手指点!