▲ 請不要開錯窗 ▲ 一個小女孩趴在窗檯上,看窗外的人正埋葬她心愛的小狗,不禁淚流滿面,悲慟不已。她的外祖父見狀,連忙引她到另一個視窗,讓她欣賞他的玫瑰花園。果然小女孩的心情頓時明朗。老人托起外孫女的下巴說:“孩子,你開錯了窗戶。”秘訣:開啟失敗旁邊的窗戶,也許你就看到了希望▲ 掃陽光
其實連接埠複用聽起來很深奧的技術,其實很簡單,簡單得只需要一個函數就可以實現: setsockopt( SOCKET s, int level, int optname, const char FAR *optval, int optlen ); 參數: s Socket 的識別碼,level選項設定的 level ,optname 選項名稱 ,optval 選項的設定值 ,optlen 選項設定值的長度。
{ 2002.07.22 關於如何發送和接收系統訊息 作者:王珍義 nickname:LargeWang(老王) QQ: 33728007 歡迎光臨鵬業軟體 www.pengesoft.com.cn 以下代碼Delphi7.0通過,編譯後啟動兩個進程,然後在一個視窗中點擊Button1試試。}unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
設計漂亮實用的菜單談在VC中動態改變菜單大部分Windows應用程式都使用下拉式菜單實現自己特定的函數,它使編程更加方便,不需要在程式中增加多個按鈕以完成這些操作。大多數情況下,我們的程式編譯產生後,菜單就確定了,不能再修改。然而,在很多情況下,程式要根據使用者的自己設定產生不同的菜單以適應不同使用者的要求,這就需要我們動態改變菜單。接下來我們就分析如何動態產生不同的菜單。 第一步: 運行AppWizard產生一個工程mymenu,接受所有的預設設定,除了下面一步:在step
各種關於檔案的操作在程式設計中是十分常見,如果能對其各種操作都了如指掌,就可以根據實際情況找到最佳的解決方案,從而在較短的時間內編寫出高效的代碼,因而熟練的掌握檔案操作是十分重要的。本文將對Visual C++中有關檔案操作進行全面的介紹,並對在檔案操作中經常遇到的一些疑難問題進行詳細的分析。 1.檔案的尋找
在基本對話方塊中添加狀態列 首先我們要在****dlg.h檔案中添加CStatusBar對象m_status 其次,在****dlg.cpp檔案中添加定義狀態列有幾格的數組: static UINT status_id[]= { ID_SEPARATOR,
procedure TForm1.MakeWordFile(const UserID : string);var Bookmark: TBookmark; RangeW: Word97.Range; v1: Variant; ov1: OleVariant; Row1: Word97.Row; sQANDD : string;//問題與痛點 sMemo : string;//備忘 sSender:string;//提交人 sPOSTDATE :string;//提交日期
最近在開發一個項目的過程中發現的問題,發現indy 的 idhttp 組件在BHO中不是很好用,有時候擷取一個返回結果要執行三次才可以擷取到正確值,但是又找不出具體的原因,不過懶人有懶人的方法,我把裡面擷取返回結果的方法用winnet api來實現,即調用:InternetOpen, InternetUrl,InternetReadFile等,發現得到結果的速度還可以,也不像原先那麼慢,且不會出現異常,呵呵,如果大家有發現為什麼在BHO中使用IDHTTP會出現上述情況的,請回複告知,謝謝。
HWND是Windows系統中對所有視窗的一種標識,即視窗控制代碼。這是一個SDK概念。 CWnd是MFC類庫中所有視窗類別的基類。微軟在MFC中將所有視窗的通用操作都封裝到了這個類中,如:ShowWindow等等,同時它也封裝了視窗控制代碼即m_hWnd成員。 由HWnd得到CWnd*:CWnd wnd;HWnd
IOCP以其高效的效能受到伺服器開發人員的青睞,本人有幸在當前的項目中使用了該非同步模型,修改調試之餘,總結出開發過程中的經驗若干,供大家借鑒。 首先是需要注意的是OVERLAPPED結構。想必該結構大多數人都是自訂新的結構體,將OVERLAPPED成員放置在第一位,然後後置其他成員。 在函數 WSASend, WSARecv, PostQueuedCompletionStatus 以及GetQueuedCompletionStatus
由於對MFC的不熟悉,中間遇到了很多的問題,現總結一二CDialog::OnInitDialog() 在我們自己建立的主對話方塊的初始化函數內有這麼一句,這個函數主要用來對建立的對話方塊執行個體化,雖然是不用我們自己寫,但是若MFC使用不當,也會導致這個函數遇到許多問題,比如:
/* * * 作者:俞偉 * 時間:2007-11-29 * 作用:聲明SocketObject類,該類的實現對象主要用於訊息接收 * 郵件:michelsn@163.com * * */using System;using System.Collections.Generic;using System.Text;using System.Net;using System.Net.Sockets;using System.IO;namespace
摘要: 在對多線程並發的編程環境下,死結是我們經常碰到的和經常需要解決的問題。所謂死結,即:由於資源佔用是互斥的,當某個線(進)程提出申請資源後,使得有關進程在無外力協助下,永遠分配不到必需的資源而無法繼續運行,這就產生了一種特殊現象死結,如: 線程#1在獲得Lock A後,需要獲得Lock B,而同時,線程#2在Lock B後,需要獲得Lock A。對於線程#1和#2,由雩都不能獲得滿足的條件,而無法繼續執行,死結就形成了。
最近因為工作需要,使用到了剪貼簿的特殊功能。也翻閱了一些網上介紹的資料,發現要實作類別似FlashGet那樣下載工具中監視剪貼簿的實現方式,對我們程式設計有點借鑒的意義。在Windows提供的剪貼簿API中,針對監視這塊,提供的是註冊機制。主要函數是SetClipboardViewer這個API函數。這個函數的聲明是這樣的(Delphi):function SetClipboardViewer(hWndNewViewer: HWND): HWND;
把這兩個概念放在一起,確實不是很工整。但對於熱衷設計的我們,只要有用就行。 首先來解釋這兩個概念。
1. 縮減語1)SNDCP:SubnetworkDependence Converage Protocol,子網相關匯聚協議2)NSAPI:Network Layer Service Access Point Identifier,網路層服務存取點標識,其實就是在使用SNDCP層的服務的PDP的PDP內容相關的一個索引,SNDCP向上層提供的服務存取點;3)SAPI: LLC 向上層提供的服務存取點3)Qos:quality ofservice 4)BSS:Base
在上一篇文章(TBB:pipeline,軟體流水線的威力)最後提出了幾個問題,我們逐個來看看TBB::Pipeline是怎麼解決的。 為什麼Pipeline可以保證資料執行的順序?既然TBB歸根到底是通過多線程執行任務,為什麼不會在讀入先後兩個字串後,後讀入的字串先被下一個task處理?Pipeline裡是不是有一個類似於FIFO
摘要 本文對VoIP原理和基本實現流程做了介紹,並對乙太網路環境下音頻時延構成進行了分析。實驗結果證明乙太網路環境下音頻時延主要由緩衝區時延和API調用時延構成,其中最主要的部分是API調用時延。論文提出了採用DirectSound介面函數降低API調用時延的方法,並對進一步降低API時延策略進行了探討。 隨著網路技術的快速發展,VoIP技術得到了廣泛的應用。特別是在區域網路環境下,VoIP憑藉其應用便捷,價格低廉的優點,已經成為了人們即時交流的主要方式之一。從實際應用效果來看,時延成為影響V
使用DELPHI做多層開發的朋友們都應該對Scktsrvr.exe這個程式不陌生的,Borland公司在DELPHI中給出了它的原始碼。這是一個900來行的程式,程式不算長,現在我只選其中部分仔細讀一讀。走的線路大致是,從伺服器接到用戶端串連,處理用戶端的一個請求(這兒選了用戶端向伺服器發出的'取應用伺服器列表'請求)伺服器接受了用戶端串連後,因為ServerSocket採用的是阻塞模式,伺服器執行了下面這個線程來服務用戶端://SCKTMAIN.PASprocedure
這裡可以看到圖,懶得上傳到MSN了http://ladefense.spaces.live.com/blog/cns!CB45984FA784EC2C!709.entry/請轉載者保留作者全部資訊/TBB:concurrent_queue