Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)
소개
직장에서 조금 툴 만들고 싶지만, 사용하는 사람도 생각해 GUI로 하고 싶다, C언어로 짜고 싶은, 라이센스라든지 생각하고 gcc로 만들고 싶다, 라이브러리 여러가지 기억하고 싶지 않은, 그런 때에 살짝 사용할 수 있는 순서입니다
MinGW 설치
왼쪽의 "download/installer"에서 설치 프로그램을 얻을 수 있습니다.
실행 및 설치.
설치 후 Installation Manager
왼쪽의 기본 설정을 선택합니다.
왼쪽의 "download/installer"에서 설치 프로그램을 얻을 수 있습니다.
실행 및 설치.
설치 후 Installation Manager
왼쪽의 기본 설정을 선택합니다.
을 클릭하여 Mark
왼쪽 All Packages → MinGW → MinGW Contributed를 선택합니다.
을 클릭하여 Mark
왼쪽 상단의 Installation
Apply Changes
에서 설치 수행
MinGW에 PATH 통과
시스템의 PATH에 C:\MinGW\bin을 등록합니다.
이 기사 등 참고로 부디
Windows10에서 실행 파일의 경로를 통과하는 단계
htps : // 코 m / 슈헤 y / ms / 7 예 0d25f14 997c9 285
소스 만들기
적절한 폴더에 다음과 같이 만듭니다.
C 언어의 소스는 다음과 같습니다.
main.c/*
* These codes are licensed under CC0.
* http://creativecommons.org/publicdomain/zero/1.0/deed.ja
*/
#include <tcl.h>
#include <tk.h>
//独自コマンドの作成
int proc(ClientData clientData, Tcl_Interp* interp, int argc, const char* argv[])
{
//argc:引数の数
//argv[0]:自分自身(コマンド名)
//argv[1]~:引数
if ( argc != 1 )
{
char *retmsg = "argument error";
Tcl_SetResult(interp, retmsg, TCL_VOLATILE);
return TCL_ERROR;
}
printf("Call!\n");
char *retvalue = "0";
Tcl_SetResult(interp, retvalue, TCL_VOLATILE);
return TCL_OK;
//終了コードの種類
//TCL_OK、TCL_ERROR、 TCL_RETURN、TCL_BREAK、またはTCL_CONTINUE
//応答の種類
//TCL_STATIC ... データが静的な領域(static char)にあって、関数を抜けてもその領域が上書きされない場合
//TCL_VOLATILE ... データが揮発する(auto char)スタック領域にあり、関数を抜けると上書きされる場合
//TCL_DYNAMIC ... データがAPI Tcl_Allocで確保された領域にある場合
}
int main(int argc, char* argv[])
{
Tcl_Interp *interp = Tcl_CreateInterp(); //インタプリタを作成
Tcl_FindExecutable(argv[0]); //初期化前準備
if ( Tcl_Init(interp) == TCL_ERROR ) //Tclを初期化(スタンダートライブラリinit.tclをロード)
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("インタプリタの初期化に失敗: %s\n",errmsg);
return -1;
}
if ( Tk_Init(interp) == TCL_ERROR ) //Tkを初期化(GUIライブラリをロード)
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("GUIライブラリの初期化に失敗: %s\n", errmsg);
return -1;
}
//コマンドを作る
Tcl_CreateCommand(interp,"testproc",proc,NULL,NULL);
if ( Tcl_EvalFile(interp, "script.tcl") == TCL_ERROR )//インタプリタで実行
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("実行失敗: エラー内容:%s\n", errmsg);
return -1;
}else{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("実行成功:%s\n", errmsg);
}
Tk_MainLoop();//Tkのイベントループへ
Tcl_DeleteInterp(interp); //インタプリタのお片付け
return 0;
}
TCL 언어의 소스는 다음과 같습니다. (GUI 정의 파일과 같은 것으로 생각하십시오)
script.tclbutton .b1 -text "Hello World" -command {puts "Hello World"}
button .b2 -text "Call proc" -command {testproc}
pack .b1 .b2
컴파일하다
소스가 있는 폴더에서 명령 프롬프트를 열고 다음을 수행합니다.
gcc main.c -o test.exe -ltcl86 -ltk86
실행하다
test.exe를 실행합니다.
위의 버튼을 누르면 Hello World가 표시되고,
아래 버튼을 누르면 C 언어의 proc 함수가 실행됩니다.
배포 시 주의
언뜻 보면 EXE 파일과 TCL 파일로 작동하는 것처럼 보이지만 실제로는 MinGW 폴더의 파일에 의존합니다.
배포하려면 다음과 같은 폴더 구성으로 배포하십시오.
配布フォルダ
├─bin
| ├─test.exe
| ├─script.tcl
| ├─libgcc_s_dw2-1.dll ←C:\MinGW\binにあるファイル
| ├─tcl86.dll ←C:\MinGW\binにあるファイル
| └─tk86.dll ←C:\MinGW\binにあるファイル
└─lib
├─tcl8.6 ←C:\MinGW\libにあるフォルダ
└─tk8.6 ←C:\MinGW\libにあるフォルダ
Tcl/tk 라이선스에도 주의하십시오.
htps //w w. tcl. tk/그 f와 ぁれ/tcltk/〃센세. HTML
결론
Tcl/Tk는 외형은 소박하지만 꽤 쉽게 GUI가 쓸 수 있는 툴킷&언어입니다.
C 언어에 내장되는 전제로 만들어져 있기 때문에 이렇게 쉽게 사용할 수 있습니다.
TCL 언어 자체의 사용법에 대해서는 아래 등을 참조하십시오.
Tcl/Tk GUI Programming
h tp // w w. 응 ct9. 네. jp/m_히로이/tcl_tk. HTML
Tcl/Tk 추천
htps : // / s. 오, ぇ. 이 m / 해 / gps 미안해 jp / tcl tk / tcl tk의 스스메
Tcl/tk 간단한 참조
htps : // / s. 오, ぇ. 코 m / 해 / gps 뭉아
Tcl/Tk로 Windows 프로그래밍
h tp // 우우 b. 아 r ゔ ぇ. rg/우ぇb/20160116031827/htp // 칭찬 3. 에 fty. 이 m/카쿠짱/tcl_tk/이어서 x. HTML
Reference
이 문제에 관하여(Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gpsnmeajp/items/d69c51cbd34d8178daf9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
적절한 폴더에 다음과 같이 만듭니다.
C 언어의 소스는 다음과 같습니다.
main.c
/*
* These codes are licensed under CC0.
* http://creativecommons.org/publicdomain/zero/1.0/deed.ja
*/
#include <tcl.h>
#include <tk.h>
//独自コマンドの作成
int proc(ClientData clientData, Tcl_Interp* interp, int argc, const char* argv[])
{
//argc:引数の数
//argv[0]:自分自身(コマンド名)
//argv[1]~:引数
if ( argc != 1 )
{
char *retmsg = "argument error";
Tcl_SetResult(interp, retmsg, TCL_VOLATILE);
return TCL_ERROR;
}
printf("Call!\n");
char *retvalue = "0";
Tcl_SetResult(interp, retvalue, TCL_VOLATILE);
return TCL_OK;
//終了コードの種類
//TCL_OK、TCL_ERROR、 TCL_RETURN、TCL_BREAK、またはTCL_CONTINUE
//応答の種類
//TCL_STATIC ... データが静的な領域(static char)にあって、関数を抜けてもその領域が上書きされない場合
//TCL_VOLATILE ... データが揮発する(auto char)スタック領域にあり、関数を抜けると上書きされる場合
//TCL_DYNAMIC ... データがAPI Tcl_Allocで確保された領域にある場合
}
int main(int argc, char* argv[])
{
Tcl_Interp *interp = Tcl_CreateInterp(); //インタプリタを作成
Tcl_FindExecutable(argv[0]); //初期化前準備
if ( Tcl_Init(interp) == TCL_ERROR ) //Tclを初期化(スタンダートライブラリinit.tclをロード)
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("インタプリタの初期化に失敗: %s\n",errmsg);
return -1;
}
if ( Tk_Init(interp) == TCL_ERROR ) //Tkを初期化(GUIライブラリをロード)
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("GUIライブラリの初期化に失敗: %s\n", errmsg);
return -1;
}
//コマンドを作る
Tcl_CreateCommand(interp,"testproc",proc,NULL,NULL);
if ( Tcl_EvalFile(interp, "script.tcl") == TCL_ERROR )//インタプリタで実行
{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("実行失敗: エラー内容:%s\n", errmsg);
return -1;
}else{
const char *errmsg = Tcl_GetStringResult(interp); //エラーメッセージの取得
printf("実行成功:%s\n", errmsg);
}
Tk_MainLoop();//Tkのイベントループへ
Tcl_DeleteInterp(interp); //インタプリタのお片付け
return 0;
}
TCL 언어의 소스는 다음과 같습니다. (GUI 정의 파일과 같은 것으로 생각하십시오)
script.tcl
button .b1 -text "Hello World" -command {puts "Hello World"}
button .b2 -text "Call proc" -command {testproc}
pack .b1 .b2
컴파일하다
소스가 있는 폴더에서 명령 프롬프트를 열고 다음을 수행합니다.
gcc main.c -o test.exe -ltcl86 -ltk86
실행하다
test.exe를 실행합니다.
위의 버튼을 누르면 Hello World가 표시되고,
아래 버튼을 누르면 C 언어의 proc 함수가 실행됩니다.
배포 시 주의
언뜻 보면 EXE 파일과 TCL 파일로 작동하는 것처럼 보이지만 실제로는 MinGW 폴더의 파일에 의존합니다.
배포하려면 다음과 같은 폴더 구성으로 배포하십시오.
配布フォルダ
├─bin
| ├─test.exe
| ├─script.tcl
| ├─libgcc_s_dw2-1.dll ←C:\MinGW\binにあるファイル
| ├─tcl86.dll ←C:\MinGW\binにあるファイル
| └─tk86.dll ←C:\MinGW\binにあるファイル
└─lib
├─tcl8.6 ←C:\MinGW\libにあるフォルダ
└─tk8.6 ←C:\MinGW\libにあるフォルダ
Tcl/tk 라이선스에도 주의하십시오.
htps //w w. tcl. tk/그 f와 ぁれ/tcltk/〃센세. HTML
결론
Tcl/Tk는 외형은 소박하지만 꽤 쉽게 GUI가 쓸 수 있는 툴킷&언어입니다.
C 언어에 내장되는 전제로 만들어져 있기 때문에 이렇게 쉽게 사용할 수 있습니다.
TCL 언어 자체의 사용법에 대해서는 아래 등을 참조하십시오.
Tcl/Tk GUI Programming
h tp // w w. 응 ct9. 네. jp/m_히로이/tcl_tk. HTML
Tcl/Tk 추천
htps : // / s. 오, ぇ. 이 m / 해 / gps 미안해 jp / tcl tk / tcl tk의 스스메
Tcl/tk 간단한 참조
htps : // / s. 오, ぇ. 코 m / 해 / gps 뭉아
Tcl/Tk로 Windows 프로그래밍
h tp // 우우 b. 아 r ゔ ぇ. rg/우ぇb/20160116031827/htp // 칭찬 3. 에 fty. 이 m/카쿠짱/tcl_tk/이어서 x. HTML
Reference
이 문제에 관하여(Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gpsnmeajp/items/d69c51cbd34d8178daf9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gcc main.c -o test.exe -ltcl86 -ltk86
test.exe를 실행합니다.
위의 버튼을 누르면 Hello World가 표시되고,
아래 버튼을 누르면 C 언어의 proc 함수가 실행됩니다.
배포 시 주의
언뜻 보면 EXE 파일과 TCL 파일로 작동하는 것처럼 보이지만 실제로는 MinGW 폴더의 파일에 의존합니다.
배포하려면 다음과 같은 폴더 구성으로 배포하십시오.
配布フォルダ
├─bin
| ├─test.exe
| ├─script.tcl
| ├─libgcc_s_dw2-1.dll ←C:\MinGW\binにあるファイル
| ├─tcl86.dll ←C:\MinGW\binにあるファイル
| └─tk86.dll ←C:\MinGW\binにあるファイル
└─lib
├─tcl8.6 ←C:\MinGW\libにあるフォルダ
└─tk8.6 ←C:\MinGW\libにあるフォルダ
Tcl/tk 라이선스에도 주의하십시오.
htps //w w. tcl. tk/그 f와 ぁれ/tcltk/〃센세. HTML
결론
Tcl/Tk는 외형은 소박하지만 꽤 쉽게 GUI가 쓸 수 있는 툴킷&언어입니다.
C 언어에 내장되는 전제로 만들어져 있기 때문에 이렇게 쉽게 사용할 수 있습니다.
TCL 언어 자체의 사용법에 대해서는 아래 등을 참조하십시오.
Tcl/Tk GUI Programming
h tp // w w. 응 ct9. 네. jp/m_히로이/tcl_tk. HTML
Tcl/Tk 추천
htps : // / s. 오, ぇ. 이 m / 해 / gps 미안해 jp / tcl tk / tcl tk의 스스메
Tcl/tk 간단한 참조
htps : // / s. 오, ぇ. 코 m / 해 / gps 뭉아
Tcl/Tk로 Windows 프로그래밍
h tp // 우우 b. 아 r ゔ ぇ. rg/우ぇb/20160116031827/htp // 칭찬 3. 에 fty. 이 m/카쿠짱/tcl_tk/이어서 x. HTML
Reference
이 문제에 관하여(Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gpsnmeajp/items/d69c51cbd34d8178daf9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
配布フォルダ
├─bin
| ├─test.exe
| ├─script.tcl
| ├─libgcc_s_dw2-1.dll ←C:\MinGW\binにあるファイル
| ├─tcl86.dll ←C:\MinGW\binにあるファイル
| └─tk86.dll ←C:\MinGW\binにあるファイル
└─lib
├─tcl8.6 ←C:\MinGW\libにあるフォルダ
└─tk8.6 ←C:\MinGW\libにあるフォルダ
Tcl/Tk는 외형은 소박하지만 꽤 쉽게 GUI가 쓸 수 있는 툴킷&언어입니다.
C 언어에 내장되는 전제로 만들어져 있기 때문에 이렇게 쉽게 사용할 수 있습니다.
TCL 언어 자체의 사용법에 대해서는 아래 등을 참조하십시오.
Tcl/Tk GUI Programming
h tp // w w. 응 ct9. 네. jp/m_히로이/tcl_tk. HTML
Tcl/Tk 추천
htps : // / s. 오, ぇ. 이 m / 해 / gps 미안해 jp / tcl tk / tcl tk의 스스메
Tcl/tk 간단한 참조
htps : // / s. 오, ぇ. 코 m / 해 / gps 뭉아
Tcl/Tk로 Windows 프로그래밍
h tp // 우우 b. 아 r ゔ ぇ. rg/우ぇb/20160116031827/htp // 칭찬 3. 에 fty. 이 m/카쿠짱/tcl_tk/이어서 x. HTML
Reference
이 문제에 관하여(Windows에서 gcc에서 C 언어로 쉽게 GUI (Tcl/Tk)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gpsnmeajp/items/d69c51cbd34d8178daf9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)