2010-06-27 34 views
2

假设我有一些功能,比如在C++如何将C++代码连接到应用程序?

int f() { 
    // do some stuff 
} 

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

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


我想这个问题太模糊,不能回答这样的问题。

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

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

+2

您将需要提供更多信息。平台,API,关于你想要做什么的更多细节,你到目前为止有什么(请不要代码的墙),编译器。 – 2010-06-27 18:02:25

+2

绝对需要知道你在哪里和你在使用什么。也就是说,OS/Toolchain(可能)/ framework – jer 2010-06-27 18:03:25

+0

函数应该在客户端(在浏览器中)还是在服务器上运行?在浏览器中使用c函数需要插件AFAIC,因为大多数浏览器只支持javascript。在服务器端运行该功能取决于您使用的服务器。 – josefx 2010-06-27 18:39:37

回答

3

是的,在这方面,桌面应用程序和Web应用程序之间实际上有相当大的差别 - 至少通常,虽然有例外(例如,微软的Silverlight框架可以让你做某些东西在一个Web应用程序,就像你在桌面应用程序中一样)。

如何在桌面应用程序上连接东西差别很大。原始Windows应用程序经常包含基于“消息”值的巨大开关语句。 MFC使用它所谓的消息映射。 Qt使用它所谓的信号和插槽。

但是,可能值得一提的是,在典型情况下,您在代码中并没有真正处理这个问题。大多数人让IDE处理大部分连接这个问题的细节。它会(通常)产生一个像上面一样的框架函数(可能更多地填充以执行诸如调用父类函数等操作),因此您通常必须直接处理的部分是//do some stuff部分。

编辑(回复编辑的问题):网页是可能是你现在想要处理的最后一件事情。在网页上处理按钮事件等方面,只有一个巨大的变化范围。特别是,您经常会在浏览器内部发生的操作(例如,使用AJAX)在服务器上发生的事件(例如,使用Javascript)的组合。您可以在客户端,服务器或两者上调用函数,以响应特定的按钮点击等,所以这实际上是相当复杂的情况。

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

+0

谢谢!当我最初发布这个问题时,我期待着一些非常简单的事情。还有很多需要探索! – Lazer 2010-06-27 18:26:30

1

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

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

有了Qt,答案有两个部分:你在你的对话框类的public slots:部分申报int f(),并在对话框的构造函数您连接按钮的点击信号至int f()插槽。

相关问题