代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

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

  •  2
  • Aakash Goel  · 技术社区  · 15 年前

    假设我有一些函数,比如C++

    int f() {
        // do some stuff
    }
    

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

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


    我想这个问题太含糊了,无法回答。

    我正在阅读Head First Design Patterns一书,其中有许多用于一些虚拟应用程序的代码示例。当然,所有这些都是java。但我更熟悉C++。所以,在阅读的时候,我只是想知道怎样才能把我的代码连接到某个应用程序上。一般程序是什么?

    具体来说,我如何将它连接到网页上的按钮?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jerry Coffin    15 年前

    是的,桌面应用程序和Web应用程序在这方面实际上有很大的区别——至少通常是这样,尽管有例外(例如,Microsoft的Silverlight框架允许您这样做 一些 在web应用程序中的内容与在桌面应用程序中的内容相同)。

    如何在桌面应用程序上连接东西有很大的不同。原始windows应用程序通常包括基于“消息”值的大型switch语句。mfc使用它所称的消息映射。qt使用它所称的信号和时隙。

    不过,可能值得一提的是,在典型的情况下,在代码中并没有太多处理这个问题。大多数人让ide来处理连接这个的大部分细节。它将(通常)生成一个骨架函数,就像上面提到的那样(可能还要填写更多的内容来执行调用父类函数等操作),所以通常您需要直接处理的是 //do some stuff 部分。

    编辑(响应问题的编辑):网页是 可能 你现在最不想处理的事情。有一个简单的 巨大的 在网页上处理按钮事件等的变化范围。特别是,您经常会得到在浏览器中发生的操作的组合(例如,在javascript中) 服务器上发生的事情(例如,使用ajax)。您可以在客户端、服务器或两者上调用函数,以响应特定的按钮单击等,因此这实际上是一个非常复杂的场景。

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

        2
  •  1
  •   MSalters    15 年前

    基本上,你要注意的是C++没有标准的UI。Java确实如此。(事实上它有很多标准的ui,比如swing、awt、swt)。这使得你很难说出如何连接一个按钮。

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

    对于qt,答案有两部分:您声明 int f() public slots: 对话框类的一部分,在对话框的构造函数中,将按钮的单击信号连接到 int() 狭槽。