![](/img/trans.png)
[英]Unresolved external using TCL/Tk in c++ applikation on Windows with cpptk
[英]C++/TCL how to invoke tk?
所以我想在我的程序中執行 TCL 代碼。 我希望它能夠訪問我的一些 C++ 函數和類。 所以我使用C++/TCL 。 所有通用 TCL 到 C++ 綁定對我來說都很好。 但是現在我想在上面有一些小 UI(所以我有很多與我的應用程序交互的通用 TCL 代碼,現在我想向它添加 Tk gui。)如何在 window 內部創建簡單的 tk 按鈕,並帶有一些名稱我想使用 C++/TCL? 我根本不想使用 C++/TK。
更新我嘗試了什么:
將所有 Tk (.tcl) 文件放入../../tk 文件夾並嘗試這個...它失敗了
#include <string>
#include "cpptcl.h"
int main(int argc, char *argv[])
{
std::string script =
"package require Tcl 8.5\n"
"set auto_path [linsert $auto_path 0 [file join [file dirname [info script]] ../../tk]]\n"
"package require Tk 8.5\n";
Tcl::interpreter tcl_interpreter;
tcl_interpreter.eval(script);
return 0;
}
我也嘗試過類似的東西
#include <string>
#include "cpptcl.h"
int main(int argc, char *argv[])
{
std::string script =
"package require Tcl 8.5\n"
"foreach tkFile [glob -nocomplain -directory ../../tk *] {\n"
" source $tkFile\n"
"}\n"
"package require Tk 8.5\n";
Tcl::interpreter tcl_interpreter;
tcl_interpreter.eval(script);
return 0;
}
這也失敗了。
我還嘗試將 tk85.dll 放在我的應用程序附近並致電
#include <string>
#include "cpptcl.h"
int main(int argc, char *argv[])
{
std::string script =
"package require Tcl 8.5\n"
"load tk85.dll \n";
Tcl::interpreter tcl_interpreter;
tcl_interpreter.eval(script);
return 0;
}
和這個
#include <string>
#include "cpptcl.h"
int main(int argc, char *argv[])
{
std::string script =
"package require Tcl 8.5\n"
"interp create slave \n"
"load {} Tk slave \n"
;
Tcl::interpreter tcl_interpreter;
tcl_interpreter.eval(script);
return 0;
}
如此處所述。 這也失敗了。
這個
#include <string>
#include "cpptcl.h"
int main(int argc, char *argv[])
{
std::string script =
"package require Tcl 8.5\n"
" interp create a\n"
" a eval {set argv {-display :0}; package require Tk; button \".b\" -text \"Say Hello\"; pack \".b\" -padx 20 -pady 6;}\n"
;
Tcl::interpreter tcl_interpreter;
tcl_interpreter.eval(script);
std::cin.get();
return 0;
}
編譯並運行,但不顯示 ani window 或其他。(
該怎么辦? 如何加載 Tk?
你還沒有說什么失敗了,但這行不通。 要擁有 GUI,您需要一個事件循環。
我推薦一種不同的方法:將您的 C++ 代碼放入 Tcl 可加載模塊中,然后您的腳本可以在wish
下運行並使用 Tk 和在 C++ 中實現的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.