1. 程式人生 > >呼叫第三方庫 多執行緒開發防止

呼叫第三方庫 多執行緒開發防止

開發信用卡轉賬的問題集

1.關於動態庫的呼叫

   當具有動態連線庫.dll檔案時,可以使用工具轉化出.lib檔案,再通過第三所提供的關於.dll中的頭函式編寫標頭檔案。在qt中應用動態庫,需要在.pro檔案中加入LIBS += -Lc:/gmc/qmf -lposinfqmf 說明:-LC:表示動態庫.lib檔案的路徑,-l表示的是動態庫.lib的名字。

2.頭函式的編寫

   如果在c++中使用c編寫的動態庫,則需要加上#ifdef __cplusplus extern "C" {

#endif#ifdef __cplusplus } #endif

   在原先的函式與返回型別中加入 __stdcall

或者是__cdecl。

  *那就可以使用動態庫中的函數了。

3.設計信用卡轉賬執行緒

遇到的問題:當在主介面類中呼叫動態函式時會耽誤很長時間,有因為主介面的函式沒有返回之前,主介面會一直被凍結。對使用者造成不好的使用體驗,所以必須使用多執行緒。

執行緒設計:申明私有變數:bool isstoped=false; int tstate=NUll;(執行緒狀態)int Uistate=NULL(執行緒狀態在)

run)函式中,一直檢測isstopedtState並做出相應的判斷,呼叫相應的函式。點選信用卡轉賬後,介面初始化,uiState=State=init:表明初始化,emiti),將執行緒狀態置空;介面:如果返回的是零則提示”請插入卡後,按確認按鈕“,並顯示確定按鈕,

點選確定按鈕後,將介面狀態自加一併賦值給執行緒狀態,介面顯示正在讀卡,並隱藏確定按鈕,emiti),將執行緒狀態置空,介面收到訊號判斷讀卡成功,根據介面狀態,顯示信用卡卡號、確定,按確定按鈕後,顯示提示;“請插入銀行卡後,按確定按鈕

點選確定按鈕後,將介面狀態加一賦值給執行緒狀態。執行緒呼叫讀銀行卡函式,emiti),介面判段讀卡成功顯示卡號,提示”請取卡後,按確定“。

點選確定按鈕後,修改狀態,執行緒呼叫輸入密碼個獲取鍵值函式,每取回一個鍵值傳送一個鍵值訊號,更新密碼欄。**鍵盤上按確定。取完六個值後,暫停1秒,呼叫getpinblock函式,emiti),判斷密碼輸入成功,顯示輸入還款框,(值改變就設定入參

).點選確定直接交易。

//訊號連線時不能帶 引數,connect(c,SIGNAL(send(int )),this,SLOT(deal(int )));