2010-06-27 85 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()插槽。

相關問題