tcl を使用して GUI を作成しました。Tcl コードのコア機能のいくつかを、dll をサポートするすべてのプログラムで使用できるようにしたいと考えています。そのために、2 つの整数を加算する非常に単純な Tcl コードの例を取り上げ、この機能を使用するための AC ラッパー関数を作成しました。これは私のために働いています。これら 2 つの 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の概念に不慣れです。