COBOL에서 GUI 프로그래밍 돌아가기
여러가지 공부 부족이었고, 또 운코드밖에 쓸 수 없었습니다.
그렇게 그런 면면 속에서 재료 기사조차 쓸 수 없어서 미안해.
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/, 이나바
Reference
이 문제에 관하여(COBOL에서 GUI 프로그래밍 돌아가기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nRioki/items/37f669d91ab7a2e326ab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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;
}
}
}
Reference
이 문제에 관하여(COBOL에서 GUI 프로그래밍 돌아가기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nRioki/items/37f669d91ab7a2e326ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)