libjingle2-把call改寫成win32視窗程序

來源:互聯網
上載者:User

沒寫過win32視窗程序。所以先產生一個最簡單的win32程式分析了下。

發現預設程式主要就2個視窗程序,一個是主視窗叫winproc,另一個是about。

其中winproc是在main中產生的。

about是在資源裡添加的。

這2個視窗都對應一個callback函數,啥是callback?不知道。。。。。

call函數裡是對訊息的處理。

所以要添加新的視窗,只要照著about視窗做就行了。要開啟這個about視窗在winproc的訊息處理加調用的代碼。

如果要點擊按鈕開啟,就加個按鈕,要點擊菜單選項開啟就加個功能表項目,這個是在資源裡加。訊息處理迴圈是根據資源的id判斷的。

細的東西以後再慢慢研究吧。至少能添加視窗,開啟視窗,添加按鈕,添加菜單了。嘿嘿。

下面來看看。login的功能。

在前一篇文章的基礎上。

把call的代碼add到callwin32的例子中來。排除了前面碰到的錯誤後。發現有個

Error 38 error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source? d:\libjingle0612\talk\examples\call\discoitemsquerytask.cc 98 1 callWin32

網上找到的答案

I figured out what the problem was.  The entire project needed to be marked as 'Not Using Precompiled Headers' in the property pages.  This is under the 'Configuration Properties'->C/C++->'Precompiled Headers'.  You could just single out the one file if
you wanted to also.

如果還有錯誤就參考上一個文章。

下面就是把call中的代碼整合到自己的視窗中了

call的例子寫的很好。我只能先把有用的代碼複製過來了。全部搞懂不容易。

 

call例子中的main函數,第一部分是一些初始化的代碼。如用的協議,用的伺服器連接埠

這些當然是要放在一個設定檔中。簡單點就先放在一個h檔案中。建立一個config.h檔案。把callmain.cc中的對應內容複寫過去。

執行login的時候去讀對應內容。

在callclient.cc裡添加一個方法  void doLogin(const std::string& usrname,const std::string& usrpass );

把callmain中的對應內容給複製過去。

原來代碼中printf不能用了,改用messagebox。messagebox倒是很容易懂。倒是那些參數類型,真是糾結。先不管了。

如下:

::MessageBox(NULL,(LPCWSTR)L"error",(LPCWSTR)L"Invalid protocol.  Must be jingle, gingle, or hybrid.\n",MB_YESNOCANCEL|MB_DEFBUTTON4|MB_HELP|MB_ICONQUESTION);

簡單排除幾個錯誤,添加一些引用後,程式可以運行了。

現在的問題是

1.textbox的內容如何擷取,參考關於字串類型的文章。http://blog.csdn.net/txdb/article/details/7298502

2.call裡面啟動了3個線程,這3個線程有啥關係。是不是可以改下

3.pump.DoLogin(xcs, new XmppSocket(buzz::TLS_REQUIRED), NULL);沒有返回訊息,不知道是否成功了,或者返回的視窗console沒顯示出來
4. main_thread->Run();做了啥。

1.google下是GetDlgItemText(hwnd, nEditID, szString, nMax);,對應的有GetDlgItem或許還有更多的。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.