tcl脚本调用java dll,为了更广阔的天空

头文件就是了。以后在查资料弄明白吧。

2,你需要声明几个必须的函数。

int Hello_Init(Tcl_Interp *interp);

int tHelloCmd(ClientData clientData, Tcl_Interp *interp, int argc,char *argv[]);

int Hello(); //这就是你调用的c函数啦

前两个函数到底是什么意思,干什么用的,别着急,先看看是怎么定义它的吧。

3,函数的定义:

int Hello_Init(Tcl_Interp *interp)

{

HINSTANCE hDll;

hDll=LoadLibrary("tcl84.dll");

TCL_CreateCommand tclcreatecommand;

tclcreatecommand = (TCL_CreateCommand)GetProcAddress(hDll, "Tcl_CreateCommand");

//上两句干吗的?不多说了,就是从tcl84.dll中找出Tcl_CreateCommand函数来

tclcreatecommand(interp,"h",(Tcl_CmdProc*)tHelloCmd,(ClientData)NULL,(Tcl_CmdDeleteProc *) NULL);//这一句就是将我们想要得命令字符串和tHelloCmd函数联系起来拉

return TCL_OK;

}

//在这个函数里就要调用我们自己的c语言函数了!!

int tHelloCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])

{

int retval = 0;

retval = Hello();//就是这里啦!!!!!!!!!

if (retval == 1)

{

printf("SUCCESS!!!\n");

}

else

{

printf("FAILURE !!!\n");

}

return TCL_OK;

}

//这就是我们的函数了!!!!!!

int Hello()

{

int ln;

printf("ok\n");

printf("input: ");

scanf("%d", &ln);

printf("ln: %d\n", ln);

return 1;

}

4,完了嘛?没有!还没有定义主函数呢!!!

int main(int argc, char *argv[])

{

HINSTANCE hDll;

hDll=LoadLibrary("tcl84.dll");

TCLMAIN tclmain;

tclmain = (TCLMAIN)GetProcAddress(hDll, "Tcl_Main");

//就是要取tcl84.dll中的Tcl_Main啊!

tclmain(argc, argv, Hello_Init); 取出来调用了。

exit (0);

}

5,这次是真的完了!!

6,让我们回过头来看一下到底是哪些函数调用了哪些函数,不要晕啊!!

6dd4d4b39c2f3dd656e8a89743ab517b.bmp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用tcl脚本调用makefile脚本参数非常简单,只要将makefile文件中的参数以及它们的值传递到tcl脚本中即可。可以使用Tcl脚本中的set命令来执行此操作,如下所示:set makefile [list -f makefile参数1 参数1值 -f makefile参数2 参数2值]。然后,就可以使用tcl脚本中的eval命令来调用makefile了。 ### 回答2: TCL脚本可以通过调用makefile脚本参数来控制编译过程。在TCL脚本中,可以使用`exec`命令来执行make命令,并且可以通过传递参数来调用makefile脚本。 首先,我们需要确保系统中已经安装了make工具。然后,在TCL脚本中,可以使用以下语法来调用makefile脚本参数: ``` set makeCommand "make" set makefile "Makefile" set target "all" # 组装make命令 set cmd "$makeCommand -f $makefile $target" # 执行make命令 exec $cmd ``` 在上面的示例中,我们首先定义了make命令的路径,makefile的路径和目标。然后,将它们组装成一个完整的make命令,并使用`exec`命令来执行该命令。 如果还需要传递其他参数,可以在`cmd`字符串中添加它们。例如,如果要传递一个参数`param1`,可以将其添加到`cmd`字符串中: ``` set cmd "$makeCommand -f $makefile $target param1" exec $cmd ``` 通过这种方式,TCL脚本可以使用makefile脚本参数来自定义编译过程。这对于自动化构建系统和批处理操作非常有用。 ### 回答3: 在Tcl脚本调用Makefile脚本参数可以通过以下几个步骤实现: 1. 首先,在Tcl脚本中使用`exec`命令调用Makefile脚本,并将所需的参数作为命令参数传递给Makefile脚本。例如,假设需要调用名为`build`的Makefile目标,并传递参数`-f`和`makefile_name`,可以使用以下代码:`exec make build -f makefile_name`。 2. 接下来,可以通过在Tcl脚本中使用`set`命令将Makefile脚本参数的输出保存到Tcl变量中,以便进一步处理。例如,可以使用以下代码将Makefile脚本的输出保存到名为`result`的Tcl变量中:`set result [exec make build -f makefile_name]`。 3. 最后,可以在Tcl脚本中对保存的Makefile脚本参数进行处理,例如打印、存储或使用它们进行其他操作。例如,可以使用`puts`命令打印保存的Makefile脚本参数输出:`puts $result`。 需要注意的是,Makefile脚本的参数可以根据具体的需求进行调整,上述示例中的参数仅作为示例使用。另外,确保Makefile脚本Tcl脚本在同一个目录下或正确指定路径,以确保调用成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值