TCL解释器与C++代码交互过程?

news/2024/7/1 3:30:45
 
工程科技交流平台


上一主题下一主题   可打印版本 | 订阅主题 | 收藏主题 | 开通个人空间  
   
<script type="text/javascript"> function fastreply(subject) { if(document.input) { document.input.subject.value = subject; document.input.message.focus(); } } </script>
标题: [讨论] TCL解释器与C++代码交互过程?
 
jacer
助理工程师
Rank: 2 Rank: 2



精华 0
积分 5
帖子 9
水位 15
技术分 0
状态 离线
TCL解释器与C++代码交互过程?

<script language="JavaScript"> var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { document.write(""); } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ document.write("



"); } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { //return "Safari"; } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ //return "Camino"; } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ //return "Gecko"; } </script>



一直想弄明白tcl脚本与c++代码是通过什么来交互的!今天仔细阅读了NS手册,看了看第三章的OTCL连接部分,总结了一下,有一些问题不是很明白,请教大家。
      
        TCL解释器的接口在目录TCLCL中。
         TCLCL中定义了许多类,对于我们来说,主要研究以下6个类:
        TCL类:包含c++代码访问解释器的方法
        TCLObject类:这是所有模拟器对象的基类
        TCLClass类:其中有实例化tclobject类的方法
        TCLCommand类:定义了简单的全局解释命令
       EmbeddedTcl类:含有高层次的内建解释命令的方法(这个高层次内建解释命令是什么??指的是tcl内建命令吗?请大侠指教)
       Instvar类:定义了c++成员变量作为OTCL瞬时变量方法

c++代码访问解释器
   a .获得TCL类的指针
     TCL& tcl=TCL::instance();
  b. 激活Otcl过程(这里理解的不太明白,请指教)
     c++代码获得TCL类指针后,就可以访问解释器了。
     首先,c++代码通过下面几个函数传递参数(传递的是OTCL命令吗??比如传递字符串set)
    tcl.eval(char* s) 调用TCL_Globaleval(),通过解释器执行s
    tcl.evalc(const char*s) 返回字符串参数s
     。。。。
     解释器通过一个全局文本(这个全局文本是怎么定义的??)来识别这个字符串。
     如果解释器返回一个TCL_OK,则这些函数将会调用一个相应的otcl过程(这个没看懂,这个otcl过程是怎样被调用的??)
   
    总的来说,c++代码是通过解释器与otcl脚本连接的,解释器能够解释脚本,同时,解释器有接口和c++代码连接,从手册上看,解释器是由c++代码构成,但是解释器是如何解释脚本的呢??(请大侠告知)
    今天只看到这,上面一些问题请各位大侠给解答一下!谢谢!
2008-7-28 13:18#1
顶部
发短消息 
 
muouniba
助理工程师
Rank: 2 Rank: 2



精华 0
积分 2
帖子 4
水位 6
技术分 0
来自 江苏省
状态 离线
<script language="JavaScript"> var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { document.write(""); } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ document.write("



"); } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { //return "Safari"; } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ //return "Camino"; } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ //return "Gecko"; } </script>



我现在对这个解释器的概念是越来越模糊了.到底哪个是解释器呀.NS还是什么呢?
2008-7-28 20:34#2
顶部
发短消息 
 
yidian16
助理工程师
Rank: 2 Rank: 2



精华 0
积分 9
帖子 29
水位 29
技术分 0
状态 在线
<script language="JavaScript"> var OsObject = ""; if(navigator.userAgent.indexOf("MSIE")>0) { document.write(""); } if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ document.write("



"); } if(isSafari=navigator.userAgent.indexOf("Safari")>0) { //return "Safari"; } if(isCamino=navigator.userAgent.indexOf("Camino")>0){ //return "Camino"; } if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ //return "Gecko"; } </script>



可以理解成ns (中连接tcl解释程序)把tcl教本 一次读入一行 处理读入的字符串(空格时分割符)  遇到未知命令用argv argc作为参数传递给command命令 这种时简单的添加命令的方法
高级添加命令时 你可以自定义自己命令要调用的函数 而不是默认的command函数 这个具体看tcl编程方面的书
学习ns2 不用太对tcl研究太深 用commamd添加命令的方式就可以了
2008-7-30 11:23#3
顶部
博客  发短消息 
<script type="text/javascript"> function setanswer(pid){ if(confirm("您确认要把该回复选为“最佳答案”吗?")){ document.delpost.action='misc.php?action=bestanswer&tid=1712645&pid=' + pid + '&bestanswersubmit=yes'; return true; } return false; } </script>
   


<script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shCore.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushCSharp.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushFortran.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushVb.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushDelphi.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushCpp.js"></script> <script class="javascript" src="http://www.baisi.net/dp.SyntaxHighlighter/Scripts/shBrushMatlabM.js"></script> <script class="javascript"> dp.SyntaxHighlighter.ClipboardSwf = 'dp.SyntaxHighlighter/Scripts/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code'); </script> <script type="text/javascript"> </script> <script style="display: none;" type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>        <script type="text/javascript"> </script> <script style="display: none;" type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>        <script type="text/javascript"> </script> <script style="display: none;" type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

© 2007 百思
京ICP备06052257号
联系我们 - 百思论坛 - Archiver
Discuz! Comsenz Inc. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-1809906-1"; urchinTracker(); </script>
<script type="text/javascript" src="http://www.baisi.net/include/jf.js"></script>

http://www.niftyadmin.cn/n/4820378.html

相关文章

leetcode_654. Maximum Binary Tree

https://leetcode.com/problems/maximum-binary-tree/ 给定数组A&#xff0c;假设A[i]为数组最大值&#xff0c;创建根节点将其值赋为A[i]&#xff0c;然后递归地用A[0,i-1]创建左子树&#xff0c;用A[i1&#xff0c;n]创建右子树。 使用vector的assign函数,该函数的特性&#…

【vueJs源码】阅读之vm.$watch函数

我们经常使用watch肯定知道它&#xff0c;他和computer一样都是数据发生变化都会触发它。今天我们就来了解一下它的原理。 他的用法 Vue.prototype.$watch function (expOrFn: string | (() > any),cb: any,options?: Record<string, any> ): Function这是vuejs源…

Common Lisp

Common Lisp 来自 维客 Jump to: navigation, searchCommon Lisp&#xff0c;一般缩写为 CL&#xff08;不要和缩写同为CL的組合邏輯混淆&#xff09;&#xff0c;是Lisp的方言&#xff0c;标准由ANSI X3.226-1994定义。它是为了标准化此前众多的Lisp分支而开发的&#xff0c;它…

qa qc qm的区别

稍后更新。。。转载于:https://www.cnblogs.com/Chamberlain/p/10586562.html

python --web服务器

用python建立简单的web服务器 利用Python自带的包可以建立简单的web服务器。 在DOS里cd到准备做服务器根目录的路径下&#xff0c;输入命令&#xff1a; python -m Web服务器模块 [端口号&#xff0c;默认8000] 例如&#xff1a; python -m SimpleHTTPServer 8080 然后就…

几个免费的Scheme(Lisp)解释器

几个免费的Scheme&#xff08;Lisp&#xff09;解释器关键字: lisp schemeLisp 是一个古老的函数式编程语言&#xff0c;Scheme则起源于MIT的一种Lisp方言。当前编程语言的一些特性&#xff0c;如尾递归、匿名函数、动态改变代码的功能等等&#xff0c;不 少是受到了Lisp的启发…

终极秘密---------windows里藏着9.11的惊天大密码

终极秘密---------windows里藏着9.11的惊天大密码 神秘连锁"密码"泄漏恐怖分子袭美玄机 方法:用WORD~~~编辑文档输入Q33NY(必须大写) (这是9.11撞击世界贸易中心的沙特勇士们乘坐的航班号); 第三,将字体大小改到72; 最后,将字体转成 wingdings字体.你看到…

C# 印刷文字识别-身份证识别

1.阿里免费提供500次识别。需要购买该产品。 2.产品购买成功后&#xff0c;获取appcode值&#xff0c;这个要放代码中的appcode中。 3.识别的图片路径 public static void Main(string[] args){//身份证识别// Console.WriteLine("Hello World!");String url "…