COBOL에서 GUI 프로그래밍 돌아가기

10158 단어 GUIXlib코볼

여러가지 공부 부족이었고, 또 운코드밖에 쓸 수 없었습니다.



그렇게 그런 면면 속에서 재료 기사조차 쓸 수 없어서 미안해.
FUN Advent Calendar 23일째 담당 nRioki입니다.
(덧붙여서 요전날은 masha씨였습니다. htp // 마사엔코응 t. 하테나 bぉg. jp/엔트리/2016/12/22/164606 )
그래서, 하고 싶은 것은 타이틀대로 COBOL로 윈도우 표시하고 쵸메쵸메하고 싶었습니다.
결과는 전혀 없었다. 친.
하지만 아무튼 일단 ""COBOL에서""윈도우를 생성하는데 성공(?)했으므로 비망록과 같이 써 봅니다.
덧붙여서 Open COBOL 1.1.0을 이용하고 있습니다.

COBOL에서 창을 보자.



할 수 있었습니다.

       identification division.
       program-id. CALL-TEST.
       data division.
       working-storage section.
       01 numeri PIC 9(4). 
       procedure division.
           move 0721 to numeri.
           call 'sub1' using by value numeri.
           display "Hello After C".
           stop run.
//http://7ujm.net/X/XSTEP1.html いなば様より拝借 一部改変
#include<X11/Xlib.h>
#include<X1C1/Xutil.h>
#include<math.h>
//描画
void paint(Display*d,Window w,int screen,GC gc){
    XClearWindow(d,w);
    XDrawString( d, w, gc, 1, 10, "Hello", 5);
    XFlush( d );
}

void sub1(int numeri){
    Display *d;
    Window  w;
    int screen;
    XSetWindowAttributes attr;
    GC gc;
    int width = 2;
    int height = 10;
    printf("%04d\n", numeri);

    d = XOpenDisplay( NULL );//Xサーバーに接続する
    screen=DefaultScreen(d);
    //ウインドウの作成
    w = XCreateSimpleWindow( d, RootWindow(d,screen),
                        0, 0, 100, 100,//ウインドウのサイズ
                        1,BlackPixel(d,screen),//枠の設定
                        WhitePixel(d,screen));//背景色の色番号

    //ウィンドウの内容を記憶
    attr.backing_store = WhenMapped;
    XChangeWindowAttributes( d, w, CWBackingStore, &attr); 

    //ウインドウ名の設定
    XStoreName(d, w, "test Window");
    XSetIconName(d, w, "test Window");

    //グラフィックコンテキストを取得
    gc = XCreateGC( d, RootWindow( d,screen ), 0, 0); 

    XEvent event;
    //イベントマスクを登録
    XSelectInput( d, w,ButtonPressMask | ExposureMask ); 

    //マップして表示
    XMapWindow( d, w );
    XFlush( d );

    while(1){
        XNextEvent( d, &event );
        switch(event.type){
            case ButtonPress://画面上でマウスのボタンが押された時
                XDestroyWindow( d, w);//終了処理
                XCloseDisplay( d );
                exit(0);            
                break;
            case Expose://再描画要求               
                paint(d,w,screen,gc);//再描画    
                break;
            default:
                break;
        }
    }
}

네, 누가 뭐라고하면 COBOL에서 창이 생성되었습니다.

요약



너무 많은 술에서도 마시지 않으면 이런 기사를 쓸 수 없습니다.
하고 싶었던 일입니다만, 기사로 해 공개하기에는 오이타 내용이 없는 것이 되어 버렸습니다.
라이브러리의 장소의 지정조차 잘못하지 않으면 GUI에 한정하지 않고 C로 사용할 수 있는 것이면 무엇이든 할 수 있을 것 같습니다.
이번에는 그것을 알았던 것만으로도 좋습니다. 하자 ...
솔직히 시간에 맞지 않았던 느낌은 부정할 수 없기 때문에(warning으로 남긴다든가) 앞으로의 과제로 하십시오.
내년이야말로 COBOL에서 게임이나 GUI 툴로 좋은 것을 만듭니다.
내일은 크리스마스 이브입니다, shield-9
h tp // w w. 오 dゔ ㅇ r. 오 rg / 돈 rs / 1350 # st-2016-12-24
잘 부탁드립니다.

참고원



COBOL2002 사용 안내서 안내서, h tp // // t도 c. 히타치. 이. jp/마누아 ls/3000/30003D0800/GD080001. HTM, 히타치 제작소
다양한 프로그래밍, htp : //7 ujm. 네 t/, 이나바

좋은 웹페이지 즐겨찾기