用于 C++ 的 Perl/Tk GUI 应用

发布于 2024-07-06 16:13:36 字数 158 浏览 13 评论 0原文

我必须使用 C++ 做一个需要 GUI 的大学项目。 我想使用 Perl/Tk 作为 GUI,但我不确定如何将 C++ 链接到 Perl。 该项目需要能够来回传递变量。 谁能给我指出一些链接这两种语言的好教程/书籍的方向,或者关于我应该如何解决这个问题的任何想法,因为我以前从未需要链接两种语言。

I have to do a college project using C++ that requires a GUI. I want to use Perl/Tk for the GUI, but I am not sure how to link the C++ to the Perl. The project requires being able to pass variables back and forth. Could anyone point me in the direction of some good tutorials/books for linking the two, or any ideas on how I should approach the problem as I have never had to link two languages before.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

欢你一世 2024-07-13 16:13:36

我正在工作library 使其尽可能简单,但它仍然是一个 alpha 版本。

I'm working on a library to make that as simple as possible, but it's still an alpha version.

不喜欢何必死缠烂打 2024-07-13 16:13:36

您也可以尝试 swig。 它是一个从 C/C++ 生成多种脚本语言接口的工具。

You can also try swig. It's a tool for generating interfaces to several scripting languages from C/C++.

画尸师 2024-07-13 16:13:36

由于 Perl 将提供 GUI,因此我将 C++ 代码嵌入到 Perl 中。 假设将有大量 C++ 代码,我会将其放入库中。 将该库链接到 Perl 的传统方法是使用 XS 创建 Perl 模块。 编写 XSUB 的教程XS 语言参考手册 将对此有所帮助。

一种更简单的方法可能是使用 Inline 模块。 我以前使用过 Inline::C ,效果很好,但我'我从未尝试过 Inline::CPP (C++ 版本)。 我看到它有褒贬不一的评论

Since Perl is going to be providing the GUI, I'd embed the C++ code into Perl. Assuming that there's going to be a significant amount of C++ code, I'd put that into a library. The traditional way of linking that library to Perl is to create a Perl module using XS. The Tutorial for writing XSUBs and XS language reference manual will help with that.

A somewhat easier way may be to use the Inline module. I've used Inline::C before, and it worked well, but I've never tried Inline::CPP (the C++ version). I see it has mixed reviews.

晌融 2024-07-13 16:13:36

如果我要解决这个问题,我将使用 TCL/TK 创建 GUI,然后用 C/C++ 构建可以从 TCL/TK 调用的 TCL 扩展。 这是 TCL/TK 真正擅长的事情之一(其他动态语言也可以做到这一点,但我喜欢 TCL/TK)。 您可以使用 C++ 位创建共享库(在 Unix 上为 .so,在 Windows 上为 .dll),并且在加载该库时将它们作为命令导入到 TCL 中。

前面已经提到过的 Swig 是一个帮助自动化包装过程的工具,它可以获取您的 C++ 代码并创建一个包装器,允许其加载到多种语言中,例如 TCL、Perl、Python、Ruby ...

http://www.tcl.tk/ 开始,了解有关 TCL 和 TK 的大量信息。

If I was tackling this problem I'd be using TCL/TK to create a GUI and then building a TCL extension in C/C++ that can be called from TCL/TK. This is one of the things that TCL/TK is really good at (other dynamic languages can do this as well but I like TCL/TK). You create a shared libray (.so on Unix or .dll on windows) with the C++ bits and they get imported as commands into TCL when you load the library.

Swig, which has already been mentioned, is a tool that helps automate the wrapping process, it can take your C++ code and create a wrapper that allows it to be loaded into a number languages such as TCL, Perl, Python, Ruby ...

Start at http://www.tcl.tk/ for lots of informtion an TCL and TK.

被翻牌 2024-07-13 16:13:36

如果它是一个小项目,那么可能不值得花费大量时间让两种语言进行对话。 您可能会考虑使用更合适的工具。 C# 与 C++ 的对话会轻松很多。

if its a small project, its probably not worth the investment to spend lots of time getting the two languages to talk. you might consider using a more appropriate tool. C# will talk to C++ with a lot less pain.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文