六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

VB自定義數據結構的傳輸轉換

[摘要]大連艦艇學院 孫永侃 ---- 用VB使用MSCOMM、WINSOCK等控件實現數據傳輸都方便,但這些控件提供的方法都只能傳輸字符串、Byte數組等,沒有提供用戶自定義數據結構直接傳輸的方法。但如果...
大連艦艇學院 孫永侃

---- 用VB使用MSCOMM、WINSOCK等控件實現數據傳輸都方便,但這些控件提供的方法都只能傳輸字符串、Byte數組等,沒有提供用戶自定義數據結構直接傳輸的方法。但如果解決了用戶自定義數據結構與Byte數組的互相轉換,就自然可以實現用戶自定義數據結構的傳輸了。目前我們使用的轉換方法主要是以下兩種方法:

---- (1)依靠磁盤文件實現轉換:把自定義數據結構的變量(或Byte數組變量)存入一個用Binary方式打開的數據文件,然后用對應字節數的Byte數組變量(或自定義數據結構的變量)讀出,即可實現用戶自定義數據結構與Byte數組的互相轉換。

---- (2)利用內存拷貝實現轉換:用VC編寫內存拷貝函數,VB調用該函數,實現用戶自定義數據結構與Byte數組的互相轉換。

---- 現分別對這兩種方法的程序實現詳細進行說明。

---- (一)程序定義說明

'用戶自定義的數據結構
Type myDATE '該自定義的數據結構可以任意復雜和嵌套
Bchar As Byte
fsingle As Single
End Type
Dim typeA As myDATE '定義自定義數據結構變量
Dim bArray() As Byte '定義Byte數組變量
Dim MaxLenB As Long '定義確定Byte數組長度的值

'用內存拷貝實現轉換還須如下轉換函數說明:
'實現Byte數組到用戶自定義數據結構的轉換函數Copy_BA

Public Declare Function Copy_BA Lib
"copymem.dll" (ByRef pByte As Byte,
ByRef pData As myDATE, ByVal LONG cbSize)

'實現用戶自定義數據結構到Byte數組的轉換函數Copy_AB

Public Declare Function Copy_AB Lib
" copymem.dll " (ByRef pData As myDATE,
ByRef pByte As Byte, ByVal LONG cbSize)

'其中copymem.dll為VC編寫的動態連接庫

---- (二)依靠磁盤文件實現轉換說明
MaxLenB = Len(typeA)
'其中Len()為VB提供的函數,返回typeA寫至文件的大小。
'該例中 MaxLenB = 5
ReDim bArray(MaxLenB) As Byte
'用戶自定義數據結構變量typeA存入文件C:\FNANE中
Open "C:\\ FNANE " For Binary As #1
Put #1, , typeA
Close #1
………..
'從文件C:\FNANE中讀出字節數組bArray (MaxLenB)
Open "C:\\ FNANE " For Binary As #1
Get #1, , bArray
Close #1

---- 以上就實現用戶自定義數據結構typeA到Byte數組bArray()的轉換過程;若想實現Byte數組bArray()到自定義數據結構typeA的轉換,只須用以上的方法存入bArray()、讀出typeA。該方法程序實現簡單,但由于要讀寫磁盤文件,所以運行速度較慢。
---- (三)利用內存拷貝實現轉換說明

MaxLenB = LenB(typeA)
'其中LenB()為VB提供的函數,
返回typeA在內存中的大小,包括元素之間的填塞。
'該例中 MaxLenB = 8
ReDim bArray (MaxLenB) As Byte
'實現用戶自定義數據結構typeA到Byte數組bArray()的轉換
Call Copy_BA (bArray, typeA, MaxLenB)
'實現Byte數組bArray()到用戶自定義數據結構typeA的轉換
Call Copy_AB (typeA,bArray, MaxLenB)

---- (四)用VC編寫內存拷貝函數
用以下兩個函數編寫成動態連接庫:copymem.dll
void __stdcall copy_BA(LONG pMem,
LONG pSource, LONG cbSize)
{
memcpy((void*)pMem, (void*)pSource, cbSize);
}
void __stdcall copy_AB(LONG pMem, LONG pSource, LONG cbSize)
{
memcpy((void*)pMem, (void*)pSource, cbSize);



主站蜘蛛池模板: 天天看片天天爽 | 最新国语自产精品视频在 | 人妖在线精品一区二区三区 | 四虎4hu影库免费永久国产 | 亚洲国产午夜看片 | 色噜噜狠狠狠综合曰曰曰88av | 亚洲天堂手机在线 | 日韩专区在线 | 日本aⅴ在线观看 | 日韩综合一区 | 四虎影视国产精品永久在线 | 日韩一级欧美一级一级国产 | 日韩高清在线日韩大片观看网址 | 在线观看精品视频一区二区 | 欧美综合国产精品日韩一 | 日本一二三区视频 | 亚洲www网站 | 午夜激情在线 | 日韩毛片在线看 | 日本黄网站高清色大全 | 亚洲一区二区三区免费在线观看 | 午夜亚洲视频 | 天天色踪合合 | 色噜噜在线视频 | 青娱乐福利 | 日韩精品免费在线视频 | 日本无人区码卡1 | 在线a网站 | 天堂bt资源www在线 | 欧美在线视频观看 | 任我爽精品视频在线播放 | 性生免费视频 | 五月六月丁香 | 午夜一级视频 | 最新国产精品 | 色狠狠干 | 日韩欧美视频 | 日韩有码第一页 | 亚洲天堂伦理 | 天天干天天在线 | 亚洲三级在线观看 |