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. |