一部の Tcl メソッドのロード可能な DLL を作成したいと考えています。しかし、これを行う方法がわかりません。そのために、2 つの数値を加算して合計を出力する tcl api の簡単な例を取り上げました。ここで、この tcl 機能をエクスポートするためのロード可能な DLL を作成したいと考えています。
しかし、Visual Studio でそれを行う方法がわかりません。この tcl api を呼び出して 2 つの整数の合計を取得できる C コードを作成しましたが、この方法で実行したくありません。この tcl 機能を使用する DLL ファイルを作成したいと考えています。Visual Studio 2010 でこの DLL を作成するにはどうすればよいですか。
以下は、私が使用しているサンプル 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 <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
Tcl_Interp *interp;
int code;
char *result;
Tcl_FindExecutable(argv[0]);
interp = Tcl_CreateInterp();
code = Tcl_Eval(interp, "source myscript.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);
}
以下のコマンドでこのコードを正常にコンパイルしました gcc simple_addition_wrapper_new.c -I/usr/include/tcl8.5/ -ltcl8.5 -o simple_addition_op
上記のコードは、期待される出力で動作しています。
Visual Studio 2010 でこのためのロード可能な dll を作成するには、どのような手順を実行する必要がありますか?