如何将C ++代码连接到应用程序?

时间:2010-06-27 17:58:04

标签: c++ web-applications

假设我有一些功能,比如C ++

int f() {
    // do some stuff
}

如何将其连接到某个应用程序中的按钮?它本身不需要是一个Web应用程序,它可以是一个普通的桌面应用程序(我猜不是很大的区别)。

当我在某个应用程序中按某个按钮时,我需要做些什么才能调用此函数?


我猜这个问题太模糊了,无法回答这个问题。

我正在阅读Head First Design Patterns一书,它为一些虚拟应用程序提供了大量代码示例。当然,所有这些都是Java。但我更熟悉C ++。所以,在阅读时,我只是想知道如何将我的代码连接到某个应用程序。一般程序是什么?

具体如何,如何将其连接到网页上的按钮?

2 个答案:

答案 0 :(得分:3)

是的,桌面应用程序和Web应用程序在这方面实际上存在很大的差异 - 至少通常情况下,虽然有例外(例如,Microsoft的Silverlight框架允许您执行某些事情与在桌面应用程序中一样,在Web应用程序中也是如此。

如何在桌面应用上进行连接的方式各不相同。原始Windows应用程序经常包含基于“消息”值的巨型switch语句。 MFC使用它所谓的消息映射。 Qt使用它所谓的信号和插槽。

然而,值得一提的是,在一个典型的情况下,你并没有在代码中真正处理这个问题。大多数人让IDE处理连接它的大部分细节。它(通常)会产生一个类似于你上面的骨架函数(可能还有更多填充来执行调用父类函数等等)所以你通常需要直接处理的是//do some stuff一部分。

编辑(响应编辑问题):网页可能是您现在想要处理的最后一件事。在如何处理网页上的按钮事件等方面,只有巨大的变化范围。特别是,您经常会在浏览器中发生一系列动作(例如,在Javascript中)在服务器上发生的事情(例如,使用AJAX)。您可以在客户端,服务器或两者上调用函数,以响应特定的按钮单击等,因此这实际上是一个非常复杂的场景。

虽然桌面应用程序中的窗口系统和框架之间肯定存在差异,但至少变化的范围要小得多。

答案 1 :(得分:1)

基本上,您注意到的是C ++没有标准UI。 Java确实如此。 (它实际上有许多标准UI,如Swing,AWT,SWT)。这使得很难说你如何连接按钮。

现在,如果您选择与C ++结合使用的UI库,问题会轻松得多。 Qt是一种流行的选择,因为它易于使用,便携且有效。

使用Qt,答案分为两部分:您在对话框类的int f()部分声明public slots:,并在对话框的构造函数中将按钮的单击信号连接到int f()槽。