用vc++6.0編寫撥號程式 ***
mthon | 17 八月, 2007 10:05
用vc++6.0編寫撥號程式 ***
撥號上網是編寫網路應用軟體常用的操作,程式在執行某些遠端網上操作前,需要先撥號與網路連線,完成操作後由必須收線斷開。在windows 95/98的"撥號網路"中,雖然提供撥號功能,但無法直接讓自己開發的應用程式來調。而在系統註冊的常用的控制項當中又沒有提供。
本方法是利用vc++製作乙個撥號控制項,提供撥號與收線功能。vc++ 6.00提供控制項的建立引導(mfc activex controlwizard)可以快速生成activex 控制項的程式框架。撥號功能是由vc++提供的 rasapi32.lib 的函式庫支援的,函式及變數在 ras.h 檔案頭定義。函式rasdial()實現撥號功能,rashangup()用來終止撥號連線。函式呼叫方法:
dword dwret = rasdial( null, null,
&rdparams, 0l, null, &hrasconn );
dword dwret = rashangup( hrasconn );
其中:rdparams 為 rasdialparams 結構,
主要引數定義如下:
dword dwsize 結構變數的大小;
tchar szentryname 撥號網路中建立的連線名;
tchar szphonenumber **號碼,
若採用 szentryname 中定義的號碼,置為null 值;
char szcallbacknumber 回撥號碼,不用時置為null;
tchar szusername 使用者名稱;
tchar szpassword 使用者口令;
tchar szdomain 使用者許可權驗證域,
若為'*'採用szentryname 中定義的域進行驗證。
hrasconn 是 hrasconn 結構,作遠端撥號連線控制代碼。
一、 建立工程專案
啟動cv++整合開發環境,開啟"new"對話方塊,選中projects中的 "mfc activex control wizard", 在project name 項輸入"dialer" ,在location 項會生成相應的路徑。單擊ok鈕進入第二步,保留預設值。單擊next 進入最後一步,選中 invisible at run time (執行時視窗不可見),其餘保持預設。按finish 鈕,彈出乙個資訊對話方塊,按ok鈕完成工程項的建立。
二、修改控制項圖示
工程項自動生成乙個15 x 15 bitmap 的點陣圖,該圖將在vb 的資源工具箱中顯示為乙個圖示。實際上圖示可以顯示到 25 x 25 大小尺寸的點陣圖。您需要將該點陣圖改為自己的點陣圖。vc++整合開發環境提供繪圖工具讓您修改。
三、 制控制項介面
在應用程式設計時,嵌入的控制項會顯示乙個介面。工程項建立時自動生成乙個橢圓例圖。在這裡我們要去掉畫橢圓的**,並增加如下**來限制控制項視窗的大小及畫出控制項設計時的顯示圖示:
void cdialerctrl::ondraw(cdc* pdc,
const crect& rcbounds, const crect& rcinvalid)
四、 新增撥號庫及標頭檔案---- 將rasapi32.lib 及 ras.h 加到工程項。
五、 新增控制項屬性
我們要在控制項中設定一些屬性來實現應用程式與控制項的傳遞引數及控制動作。在class wizard 的 automation 標籤中 , class name 項選中 cdialerctrl ,單擊 add property 按鈕,增加控制項屬性。
六、 增加撥號及收線函式
bool cdialerctrl::dialup()
//這裡省去出錯處理**
return false;
}bool cdialerctrl::handup()
七、 增加動作函式
控制項的action 的值一有改變將自動執行該函式,action 有兩個動作:1.撥號 2.收線。
void cxiaxindialctrl::onactionchanged()
八、 編譯,鏈結,自動註冊
啟動vc++的建立(build)動作,將實行編譯,鏈結生成 dialer.ocx 並自動註冊到本機。這時您可以啟動vb 開發平台 開啟 components 就可以看到剛註冊的 dialer activex control module 。
九、 vb 的呼叫方法
在vb的開發中,您可以和通用的控制項一樣使用dialer.ocx。呼叫方法如下:
private sub command1_click()
dialer1.networking = text1.text
dialer1.username = text2.text
dialer1.password = text3.text
dialer1.phone = text4.text
label5.caption = "正在撥號..."
dialer1.action = 1
labe15.caption = dialer1.message
' 如果接通 視窗最小化
if xiaxindial1.returncode =
0 then form1.windowstate = 1
end sub
vc 6 0 除錯程式
之前一直不太會用vc 6.0,很多時候程式一出錯就不知道怎麼除錯了,相信學會設定斷點 單步除錯後,以後可以理解更多程式背後的事情,至少有了自己去探索研究的工具和方法,特此總結下 在vc 6.0中的單步除錯 除錯重要的幾個鍵 f9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點.f5除錯狀態...
VC 6 0開發Windows服務程式。
1.此時出現如下圖視窗介面,在此介面中選擇 服務 exe 然後選擇完成按鈕。在接下來的視窗中選擇確定按鈕。則vc完成嚮導並生成相應 效果如下 2 程式的進入點是全域性函式 twinmain,仔細看一下這個函式,我們會發現當我們執行程式時,可以加上引數,例如 winsvr regserver 或者 w...
vc6 0 除錯小結
現在都用vs2008了,vc6的速度還是很懷念,來個小結吧。斷點相關快捷鍵 1.f9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點.f5除錯狀態執行程式,程式執行到有斷點的地方會停下來.f10單步執行程式.ctrl f10執行到游標所在行.f11和f10的區別是,如果當前執行語句是函式呼...