Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Tcl/Tk

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.07.2007, 22:20 Uhr
~damike
Gast


Hallo

Tcl/Tk scheint ja für die GUI Programmierung interessant zu sein - wenig und einfacher Code. Wenn man jetzt ein C++ hat - kann man mit Tk dann ein Frontend machen? Wie kann man da kommunizieren?

Danke im Voraus
lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2007, 10:29 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Am einfachsten duerfte es sein, das C++-Programm als Kommandozeilentool zu schreiben und dann von Tcl aus mit Parametern aufzurufen. Ergebnis einlesen und in Tcl weiterverarbeiten, fertig. Damit sparst Du Dir einen Haufen IPC...

Beispiel: Ein kleines Script erstellt eine GUI fuer den find-Befehl von Unix. Der Benutzer gibt seine Suchkriterien ein, das Script oeffnet eine Pipe zu find, uebergibt dabei die Suchkriterien, und liest die Ausgabe von find zwecks Anzeige ein...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2007, 10:30 Uhr
Bruder Leif
dances with systems
(Operator)


Ups, vergessen: Du kannst auch relativ einfach einen Tcl-Interpreter in Deine C++-Code einbinden und damit das C++-Programm skriptbar machen. Einfach neue Tcl-Befehle erzeugen und dann von C++ aus verarbeiten. Das waere die integrierte Loesung.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.07.2007, 09:19 Uhr
mike
Pinguinhüpfer
(Operator)


Hallo

Das obige Beispiel versteh ich und hab ich schon des öfteren gesehen. Da ist der Programmablauf aber ziemlich einfach. Meine Frage bezieht sich eher auf "größere" Programme.
Das mit dem Interpreter in C++ hab ich auch schon oft gelesen. Wie kann man sich das vorstellen?
Es geht mir nur im folgendes: ich suche eine einfache, ausgereifte Sprache / Library welche mit der ich GUIs machen kann. Hab mir gtkmm angeschaut - aber da muss man schon wieder 1000 Codezeilen reinklopfen damit man nen Dialog mit 2 Buttons hat - macht man da nen Fehler, kackt das Programm wegen einem Dialog ab

lg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.07.2007, 14:50 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Mit Tcl_CreateInterp() und Tcl_DeleteInterp() kannst Du einen Tcl-Interpreter in Dein C/C++-Programm einbauen, mit Tcl_CreateCommand() neue Tcl-Befehle einbauen -- die entsprechende C-Funktion wird dann immer aufgerufen, wenn der Tcl-Befehl ausgefuehrt werden soll.

Ein (von www.jnickelsen.de/tcl/crypt-example.html geklautes) Beispiel fuer einen neuen Befehl:


C++:
#include <unistd.h>
#include <tcl.h>
#include "tcl_crypt.h"

Tcl_CmdProc Tcl_Crypt ;

int Crypt_Init(Tcl_Interp *interp)
{
    Tcl_CreateCommand(interp, "crypt", Tcl_Crypt, 0, 0) ;

    return TCL_OK ;
}

int Tcl_Crypt(ClientData dummy, Tcl_Interp *interp, int argc, char *argv[])
{
    char salt[2] ;
    
    switch (argc) {
      case 2:
        memcpy(salt, "AA", 2) ;
        break ;
      case 3:
        memcpy(salt, argv[2], 2) ;
        break ;
      default:
        interp->result = "Wrong # args: usage is `crypt password ?salt?'" ;

        return TCL_ERROR ;
    }
    strcpy(interp->result, crypt(argv[1], salt)) ;

    return TCL_OK ;
}



Ergebnis: Es gibt einen neuen Tcl-Befehl namens "crypt", der als ersten Parameter das zu hashende Passwort erwartet, optional an zweiter Stelle den Salt -- siehe crypt(3).
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.07.2007, 17:09 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Das wird ja mega kompliziert Vl. ist es echt besser mit IPC oder sockets zu arbeiten auf Client/Server Basis. Wenn die GUI abkackt reißt sie wenigstens nicht den anderen Prozess mit. Nur findet man dazu wenig im inet
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.07.2007, 17:49 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Also mir erschließt sich ehrlich gesagt noch nicht der Sinn aus dem ganzen?
Wieso willst du die GUI von dem Programm trennen bzw. was ist das für in Programm?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.07.2007, 18:12 Uhr
mike
Pinguinhüpfer
(Operator)


Der Grund ist dass mir GTKmm, QT usw. viel zu aufwendig sind. Ich will nicht die meisten Codezeilen für die GUI verwenden
Mathematica und Maple verfolgen auch den Ansatz - der Kern ist in C geschrieben und das Frontend in Java. Aber wie macht man sowas?
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.07.2007, 19:14 Uhr
KaraHead




Zitat:
der Kern ist in C geschrieben und das Frontend in Java. Aber wie macht man sowas?

Java bietet das JNI (Java Native Interface) an, womit man von Java aus C/C++ Methoden aufrufen kann.
Ist aber meiner Meinung nach nicht weniger kompliziert, als mit GTKmm etc.

Da gefällt mir das mit dem Tcl/Tk besser. Übrigens gibt es auch ein C++/Tk als library.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.07.2007, 08:56 Uhr
mike
Pinguinhüpfer
(Operator)


Jo - wahrscheinlich kommt man um GTKmm eh nicht herum *snief*

Trotzdem Danke
lg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: