| [ CnUnix ] in KIDS 글 쓴 이(By): Adagio (칸타빌레) 날 짜 (Date): 1995년06월14일(수) 14시29분59초 KDT 제 목(Title): Motif 프로그램에서... XtAddCallback함수의 파라미터중에서 마지막 user data를 위한 파라미터가 있죠... 거기에 내가 여러개의 (서로다른 데이타 타입의) 데이타를 넘기려면 구조체를 잡아서 구조체의 변수의 번지를 를 넘기는 걸로 알고 있습니다. 근데...그렇게 하면 어디가 잘못되었는지 Bus error가 나요. 구조체를 extern으로 ㅏ잡아서 하면 제대로 되는데....:( <내 프로그램 > struct MyData{ Widget canvas; XColor color[128]; }; 을 파일로 만들어서 프로그램에서 include해주었습니다. #include info.h <----- 위의 파일 포함. Thresh(w) Widget w; { struct MyData mydata; pushb = XtCreateManagedWidget("pushb",xmPushButtonWidgetClass, rowcol3,NULL,0); XtAddCallback(pushb,XmNactivateCallback,DrawCallback,&mydata); } void DrawCallback(pushb,pmydata,cbs) Widget pushb; struct MyData *pmydata; XmPushButtonCallbackStruct *cbs ; { for(i=0;i<128;i++){ XSetForeground(XtDisplay(pmydata->canvas),gc,pmydata->color[i].pixel); XDrawLine(XtDisplay(pmydata->canvas),XtWindow(pmydata->canvas),gc,i,10,i,200); } XFlush(XtDisplay(pmydata->canvas)); } 여기서 제가 하고자 하는것은 color[i]에 만들어 놓은 칼라를 윈도우에 뿌리는 것입니다. |