我创建了使用Tcl的GUI。 我希望做一些可用的TCL代码的核心功能,以通过其支持的dll的任何程序中使用。 对于我已经采取了非常简单的TCL的代码示例,它增加了两个整数,我已经写了交流的包装功能,使用该功能。 这是为我工作。 现在,我怎么能创造这两个c和TCL文件的dll,这样任何程序都可以通过简单地加载的dll使用此功能除了。
这是我简单的TCL代码:
/* Filename : simple_addition.tcl */
#!/usr/bin/env tclsh8.5
proc add_two_nos { } {
set a 10
set b 20
set c [expr { $a + $b } ]
puts " c is $c ......."
}
在此可以使用上述TCL除了功能我的C包装函数:
#include <tcl.h>
#include <tclDecls.h>
#include <tclPlatDecls.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char **argv) {
Tcl_Interp *interp;
int code;
char *result;
printf("inside main function \n");
Tcl_FindExecutable(argv[0]);
interp = Tcl_CreateInterp();
code = Tcl_Eval(interp, "source simple_addition.tcl; add_two_nos");
/* Retrieve the result... */
result = Tcl_GetString(Tcl_GetObjResult(interp));
/* Check for error! If an error, message is result. */
if (code == TCL_ERROR) {
fprintf(stderr, "ERROR in script: %s\n", result);
exit(1);
}
/* Print (normal) result if non-empty; we'll skip handling encodings for now */
if (strlen(result)) {
printf("%s\n", result);
}
/* Clean up */
Tcl_DeleteInterp(interp);
exit(0);
}
这个C包装工作对我罚款,并给出正确的结果。
现在我想建立一个DLL文件,所以,如果我包括DLL来支持DLL的任何程序,它应该能够使用上述TCL代码的这个另外的功能。 可有人告诉我的方式,我可以做到这一点。 请帮我。 我是新来这个DLL的概念。