Article View: pl.comp.lang.tcl
Article #277Re: libgg a tcl
From: Maciej Sobczak
Date: Thu, 12 Jan 2006 09:25
Date: Thu, 12 Jan 2006 09:25
47 lines
3126 bytes
3126 bytes
Googie wrote: >> Do integrowania kodu C/C++ z Tcl polecam: >> >> http://cpptcl.sourceforge.net/ >> >> Nie jest to automat i trzeba trochę napisać. Ale po pierwsze niedużo, >> po drugie właśnie wtedy jest okazja, żeby coś zmienić albo nagiąć pod >> kątem Tcla. > > Ale czy cpptcl nie służy do używania bibliotek na poziomie Tcl? Bo - tak > tylko dla pewności mówię - my tu dywagujemy o użyciu C/C++ w Tcl. Co to znaczy "użyciu C/C++ w Tcl"? Chyba nie chodzi o mieszanie składni dwóch języków w jednym pliku (chociaż da się użyć Tcl w C++, patrz niżej)? C++/Tcl umożliwia przede wszystkim to, co SWIG - czyli zrobienie z istniejącego kodu C++ (np. z jakiejś gotowej biblioteki) modułu ładowalnego (albo nawet pakietu), który będzie używalny w Tcl w tym sensie, że w Tcl będą dostępne nowe komendy, automatycznie związane z kodem w C++. Tutaj: http://cpptcl.sourceforge.net/doc/quickstart.html w pierwszym przykładzie jest pokazane, jak w Tcl zrobić polecenie hello, któro wywołuje istniejącą funkcję C++. Można też zrobić coś, co zdaje się w SWIGu nie jest możliwe (ale nie sprawdzałem) - zagnieździć interpreter Tcl w programie C++ tak, że jedno i drugie będzie miało nawzajem dostęp do swoich struktur. Pokazuje to drugi przykład na tej samej stronie. A konkretnie (w praktyce): kolega z pracy ma jakieś cyfrowe oscyloskopy, obsługiwane przez sieć przy użyciu biblioteki w C/C++ dostarczonej przez producenta tych oscyloskopów. Krótki dodatkowy plik z kilkoma wrapperami i jednym blokiem CPPTCL_MODULE pozwolił na stworzenie modułu ładowalnego do Tcl, dzięki czemu kolega może sobie teraz pisać skrypty diagnostyczne w Tcl (albo nawet pisać je na bieżąco w konsoli z tclsh), co jest dużo prostsze, niż pełny cykl tworzenia nawet krótkiego programu w C++. Nie wiem co to ten libgg, ale też się da. :) -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/
Technical Details
Message-ID:
<dq57b1$c5p$1@sunnews.cern.ch>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news-fra1.dfn.de!news-stu1.dfn.de!news.germany.com!news.belwue.de!kanaga.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!newsReferences:
<15ap42hnax7z6$.dlg@takeda.tk.invalid> <dpvmut$j2m$1@srv.cyf-kr.edu.pl> <y6jrt3zhm1uk.dlg@takeda.tk.invalid> <dq32d4$jr4$1@sunnews.cern.ch> <dq3cel$4cr$1@srv.cyf-kr.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news-fra1.dfn.de!news-stu1.dfn.de!news.germany.com!news.belwue.de!kanaga.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news From: Maciej Sobczak <no.spam@no.spam.com> Newsgroups: pl.comp.lang.tcl Subject: Re: libgg a tcl Date: Thu, 12 Jan 2006 10:25:53 +0100 Organization: CERN - European Laboratory for Particle Physics Lines: 47 Message-ID: <dq57b1$c5p$1@sunnews.cern.ch> References: <15ap42hnax7z6$.dlg@takeda.tk.invalid> <dpvmut$j2m$1@srv.cyf-kr.edu.pl> <y6jrt3zhm1uk.dlg@takeda.tk.invalid> <dq32d4$jr4$1@sunnews.cern.ch> <dq3cel$4cr$1@srv.cyf-kr.edu.pl> NNTP-Posting-Host: abpc10883.cern.ch Mime-Version: 1.0 X-Trace: sunnews.cern.ch 1137057953 12473 (None) 137.138.37.241 X-Complaints-To: news@sunnews.cern.ch User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Red Hat/1.7.12-1.1.3.2.SL3 X-Accept-Language: en-us, en In-Reply-To: <dq3cel$4cr$1@srv.cyf-kr.edu.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit