原创 多進程互斥對象排隊

寫了個操作硬件端口的程序,會被5個進程調用,但硬件端口在同一時刻只能被一個進程獨佔調用。 最簡單的方法是通過操作系統提供的互斥對象:   // 獲取互斥標誌 int WaitProcessIdle() {   while(1){     

原创 編程兩得

1、dll導出函數,不可用stdcall: 最近寫了個Dll,同時編譯了64位和32位版本,64位一切正常,32位版本有問題。調用程序使用動態加載方法,GetProcAddress()定位函數地址總是返回NULL。後來發現導出函數名不應該

原创 在C++Builder6中使用DCEF3嵌入谷歌內核瀏覽器

歷史原因,我有個BCB6寫的客戶端程序,裏面使用了CppWebBrowser控件,衆所周知,這個控件是IE內核,對HTML5的兼容性太差,面臨很多問題,有些問題即使改註冊表將內核版本強制爲IE11也解決不了。於是尋找Chrome內核嵌入的

原创 關於Linux下的高精度定時器

操作系統的默認定時器的精度是很低的,比如在windows下調用Sleep(20)延時20毫秒,實際上80毫秒都可能。 做媒體服務器,免不了需要高精度的定時器,比如語音會議,需要很精確地每20毫秒進行一次混音並通過rtp發送。 我們的媒體庫

原创 我實現的內存數據庫JDBC驅動

我去年做了個內存數據庫,自以爲功能很強大。內存數據庫是獨立運行的程序,客戶端通過socket訪問,傳送SQL語句並得到結果,爲此我提供了一個C接口的客戶端API。 但如果要做到更好的通用性,必須照顧IT世界數量最多的兩類人:java程序員

原创 如何實現一個voip錄音系統

這裏討論的voip錄音系統,是在網絡交換機上設置端口鏡像,將所有坐席(如ip話機)的端口數據鏡像到指定端口,錄音系統接到該端口,抓取端口上所有的數據包。 市場上做voip錄音的廠家,有些是硬件如板卡,有些是純軟件,他們的產品存在下列缺點:

原创 純軟的SIP語音服務器API

以前的語音服務器如呼叫中心、IVR等應用,一般是用語音板卡完成,如三匯和東進的數字卡,模擬卡。如今軟交換是趨勢,有的運營商甚至可以提供基於IMS的sip中繼,再使用語音卡就不合適了。純軟的語音系統,部署起來也簡單,只要弄一臺普通的PC或服

原创 使用線程間通信之條件變量

最近用C++寫安卓下的一個通訊程序,作爲jni庫給java調用,採用多線程輪詢遇到一個問題描述如下: A線程收到數據,放入隊列,是生產者。 B、C、D若干個線輪詢訓消息隊列,如果隊列有數據就取出進行處理,

原创 使用谷歌瀏覽器內核控件DCEF3攔截彈出的新頁面到新標籤頁

DCEF3控件TChromium有個事件OnBeforePopup,我們可以在這個事件函數里加上自己的邏輯,最後一個參數是返回參數bool &Result,置爲true表示自己來處理,置爲false表示使用默認行爲,即彈出一個新的窗口。

原创 C++動態配置的實現

先說一下需求,是在做錄音系統中遇到的:錄音文件名需要生成唯一的字符串,這個串一般由主叫號碼、被叫號碼、日期、時間等加上下劃線作爲分隔符組成,但出於兼容性考慮,某些用戶希望能按他們自己的順序來構成文件名。 除了文件名,錄音文件存放路徑也需

原创 IP錄音增加對H248即MEGACO協議的支持

傳統的媒體網關設備的控制協議是基於H248即MEGACO協議,這個協議和SIP協議不一樣。 而且,H248的底層傳輸協議一般採用SCTP協議。這給IP錄音軟件開發帶來了挑戰。 實現思路: 1、最大限度兼容原有錄音系統結構,使用原有的SI

原创 移動4G初步使用感覺

  我是移動全球通的最早用戶,原先的套餐90多元,很多免費話費,免費短信,用不完,浪費嚴重。我還有電信的一個133號碼,也送很多話費和3G流量,也基本用不完。原先是一機雙卡,攜帶固然方便,但打電話、發短信經常不知道該用哪個號碼,因此原

原创 光大證券毀在一個笨蛋程序員手裏

證監會最新的報告出來了,這個程序員不光笨,還膽大試圖栽贓。   “經查,光大證券的訂單生成系統中ETF套利模塊的設計由程序員一人開發和測試,6月至7月開發完成,7月29日實盤運行,至8月16日發生異常時實際運行不足15個交易日。該系統的訂

原创 如何對Intel IPP庫進行靜態鏈接

在多媒體codec方面,IPP庫公認是高性能的庫,而且價格也不貴,對發佈也沒什麼限制。我們的客戶強烈需要G729的codec,最近我嘗試使用IPP庫,效果確實不錯。 不過最新IPP(v7.1)的全部運行時動態庫多達85個,225M,如果每