우리의 Bioinformatics 랩에서 우리는 최근에 C로 작성 (최적화) 된 프로그램을위한 GUI를 생성하도록 요청 받았습니다. 우리가 설계 한 GUI는 입력을 입력 할 수 있어야합니다. Windows 및 Mac 모두에 쉽게 이식 할 수있는 동시에 C 프로그램의 출력을 수신 할 수 있습니다. 이 일을하는 방법은 무엇입니까?대용량 C 프로그램을위한 GUI 접근법
답변
C의 windows/mac에서 작동하는 GUI 툴킷을 찾으신다면 GTK을 고려하셨습니까?
프런트 엔드 GUI를 Java로 작성하고 C 프로그램에서 입력을 보내고 출력을받을 수 있습니다. C# 및 C 코드와 비슷한 작업을 수행하는 몇 개의 그룹을 여기에서 알았습니다 (그러나 멀티 플랫폼 제한이 없습니다).
이렇게하면 C 툴킷을 사용하여 반드시 GUI를 만들 필요는 없습니다.
프로그램의 성격에 따라 선호하는 언어로 완전히 분리 된 GUI 응용 프로그램을 생성하고 기존 프로그램을 fork/execute하여 GUI 프로그램으로 stdin 및 stdout을 재 지정 할 수 있습니다. 기존 프로그램의 작동 방식에 따라 제대로 작동하거나 매우 번거로울 수 있습니다.
GTK (C API 사용)와 같은 GUI 코드로 기존 프로그램을 확장하거나 Q ++ (C++)를 사용할 수도 있지만 C++에서 C 함수를 호출하는 데 문제가 없습니다. 'extern "C"').
이 작업을 쉽게 수행 할 수있는 언어로 많은 스크립트가 있습니다. 나는 tcl/tk에 가겠다. 맥에서 거의 작동하지만, 당신이 생각할 수있는 거의 모든 머신에서 크로스 플랫폼이다.
또한 GTK는 훌륭하고 여러 스크립트 언어에는 바인딩이 있습니다.
해야 할 일이 없으면 gui를 c로 작성하고 싶지 않을 것입니다. 빠른 개발 언어를 사용하십시오.
별도의 프로그램을 사용하십시오.
기존 코드를 손상시키지 않습니다. 코드가 프로그래머가 알지 못하거나 이해할 수없는 생물학적 지식이있는 경우 특히 중요합니다.
Gui의 변경 사항은 수년 후에 NewSuperOsToolkit (tm)에 대한 gui를 다시 작성하지만 기본 작업자 코드는 변경되지 않습니다. 대기 모델링 코드는 원래 라틴어로 작성되었습니다.
엔진 코드를 배치로, 클라우드의 MPI에서 병렬로, 그리고 생각하지 못한 다른 방법으로 계속 실행할 수 있습니다.
기본 GUI가 필요하면 wxWidgets 또는 QT로 이동하십시오. (wxWidgets를 사용합니다 ...)
다른 대안은 Javascript와 CSS를 사용하는 HTML 기반 인터페이스입니다. GUI 라이브러리를 사용하지 않으면 크로스 플랫폼 지원을받을 수 있고 결과는 다른 차원에서는 더 나을 것입니다.
실제로 독립형 사용자 인터페이스가 필요한 경우 WebKit과 같은 바이너리로 통합 할 수 있습니다.
+1. 다른 프로세스 또는 최소한 GUI에서 호출하는 링크 된 라이브러리. GUI를 공개 한 날에 구식이 된 GUI 툴킷 (언어)을 실행할 수있는 유일한 컴퓨터 인 모든 컴퓨터를 모든 사람이 사용하도록 비난하고 싶지는 않습니다. C 컴파일러는 가까운 장래에있을 것입니다. – jbcreix