欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在VFP中調用API實(shí)現撥號上網(wǎng)-輔導資料-百分百考試網(wǎng)
在Visual FoxPro 中實(shí)現撥號上網(wǎng)功能,難點(diǎn)在于如何調用相應的WINDOWS API函數。與撥號網(wǎng)絡(luò )相關(guān)的幾個(gè)API函數需要復雜的結構類(lèi)型的參數,在VFP幫助文件“程序員指南—訪(fǎng)問(wèn)API”中有相關(guān)說(shuō)明,但較為簡(jiǎn)單,不足以解決問(wèn)題,在此作進(jìn)一步探討。希望通過(guò)本文能解決實(shí)現撥號上網(wǎng)的實(shí)際問(wèn)題,更希望通過(guò)這個(gè)例子幫助了解如何在VFP環(huán)境下調用參數復雜的API函數,以擴展VFP的應用。
因篇幅所限,本文僅論述關(guān)鍵部分,相關(guān)細節說(shuō)明請參閱參考文件。
WINDOWS API中RasDial函數可實(shí)現撥號上網(wǎng)功能,可在MSDN幫助中查到,其參數簡(jiǎn)述如下:
DWORD RasDial( // 返回四字節整數,對應VFP的INTEGER型變量
LPRASDIALEXTENSIONS lpRasDialExtensions, // 指針,置NULL即可
LPCTSTR lpszPhonebook, // 指針,置NULL即可
LPRASDIALPARAMS lpRasDialParams,
// 指針,指向參數結構變量RASDIALPARAMS
DWORD dwNotifierType, // 四字節整數,置0即可
LPVOID lpvNotifier, // 指針,置NULL即可
LPHRASCONN lphRasConn // 指針,指向遠程訪(fǎng)問(wèn)連接句柄HRASCONN。
// 調用RasDial前需先置HRASCONN為NULL
);
其中結構RASDIALPARAMS描述如下:
typedef struct _RASDIALPARAMS {
DWORD dwSize; // 4字節,值為本結構占用總字節數
// 調用此函數前必須給此變量賦值
TCHAR szEntryName[RAS_MaxEntryName + 1];
// 257字節,撥號網(wǎng)絡(luò )電話(huà)簿中連接名,
// 為空則在第一個(gè)MODEM端口上,用下述電話(huà)號碼、用戶(hù)名、密碼建立連接
TCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; // 129字節,電話(huà)號碼
TCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
// 129字節,回叫號碼,置空
TCHAR szUserName[UNLEN + 1]; // 257字節,用戶(hù)名
TCHAR szPassword[PWLEN + 1]; // 257字節,密碼
TCHAR szDomain[DNLEN + 1] ; // 16字節,域名,置空
#if (WINVER >= 0x401) // 缺省情況下,WINVER=Ox400,無(wú)以下兩項
DWORD dwSubEntry;
DWORD dwCallbackId;
#endif
} RASDIALPARAMS;
以上RAS_MaxEntryName等預定義值,可從RAS.H與LMCONS.H中查出。難點(diǎn)在于dwSize值的確定:將結構中各變量字節長(cháng)度累加應為1049字節,但將1049代入dwSize去調用RasDial函數卻返回錯誤。啟動(dòng)VC++6.0定義了一個(gè)RASDIALPARAMS型結構變量后,發(fā)現其長(cháng)度為1052字節,即最接近1049且能被4(DWORD所占字節數)整除的值。分析至此,函數RasDial的各項參數已清楚,VFP中調用程序如下:
*!* 先注冊函數
DECLARE INTEGER RasDial in rasapi32 ;
INTEGER , ; && lpRasDialExtensions
INTEGER , ; && lpszPhonebook
STRING @ , ; && 指向RasDialParams
INTEGER , ; && dwNotifierType
INTEGER , ; && lpvNotifier
INTEGER @ && 指向hRasConn
*!* 給結構變量RasDialParams中各變量賦初值
dwSize= CHR(28)+ CHR(4)+ CHR(0)+ CHR(0) && 即4*256+28=1052
szEntryName=REPLICATE(CHR(0), 257) && 不使用電話(huà)簿
sTemp="95963" && 服務(wù)器(INTERNET服務(wù)商或自建)的電話(huà)號碼
TszPhoneNumber = sTemp +REPLICATE(CHR(0),129-LEN(sTemp)) && 補足129字節
szCallbackNumber=REPLICATE(CHR(0), 129) && 回撥號碼,置空
sTemp="263" && 用戶(hù)名
szUserName = sTemp +REPLICATE(CHR(0),257-LEN(sTemp)) && 補足字節數
sTemp="263" && 密碼
szPassword = sTemp +REPLICATE(CHR(0),257-LEN(sTemp)) && 補足字節數
szDomain=REPLICATE(CHR(0), 16) && 如為自建服務(wù)器,可填入相應域名
*!* 生成結構變量RasDialParams初值
RasDialParams=dwSize+szEntryName+TszPhoneNumber+szCallbackNumber ;
+szUserName+szPassword+szDomain +REPLICATE(CHR(0), 3)
hRasConn=0 && 遠程訪(fǎng)問(wèn)連接句柄,初值為0
DialResult=RasDial(0,0, @RasDialParams,0,0,@hRasConn)
斷線(xiàn)的程序如下:
DECLARE INTEGER RasHangUp in rasapi32 INTEGER
HangResult=RasHangUp(hRasConn)
注意以下幾點(diǎn):
* 指針參數(p或lp開(kāi)頭)通常按引用傳遞。NULL指針為特殊情況,其值為0,在VFP中對應值為0的INTEGER類(lèi)型變量。句柄參數(H開(kāi)頭)對應INTERGER變量。
* API函數中空字符的ASCII碼為0,即CHR(0)。
本文中的程序在Visual FoxPro 6.0下編譯通過(guò),在WINDOWS98、WINDOWS2000下運行成功
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
在應用程序中實(shí)現RAS撥號
VC實(shí)現PPPOE撥號
Excel VBA(宏)精簡(jiǎn)(四)
暴強貼:從.NET平臺調用Win32 API - 水之真諦
脫離vcl的windows程序
C#調用windows API的一些方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久