麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

淺議VB6字節數組和字符串的相互轉換

2019-11-18 17:41:59
字體:
來源:轉載
供稿:網友
一、前言

  數據類型轉換在編程中經常用到,VB6提供了一整套類型轉換的函數。但是,在進行類型轉換時,有時候僅僅依靠VB提供的函數是不能達到自己的目的的。因此,需要考慮用其他的方法來完成數據類型轉換。本文僅談VB6中字節數組和字符串的相互轉換過程中應注意的問題及其解決辦法。

  在VisualBasic中使用Byte數組主要是為了32位API函數的參數傳遞和函數的返回。在32位的VisualBasic版本中,字符串被假定為Unicode字符,其中每個字符占用兩個字節。系統自動地將Unicode的兩個連續字節轉換成1個字節的ANSI字符。但是,如果該字符串包含二進制數據,其內容將變得很難理解。例如,一個漢字是兩個字節,在VisualBasic6.0中的長度就只是1,這將給我們計算單個漢字的國標碼帶來一些麻煩。有了Byte數組,這些問題就將迎刃而解。

  另外,VisualBasic中的字符串和C語言中的字符串有一些不同,本文將給出一個函數,把C字符串轉換成VisualBasic字符串。

二、用Byte數組代替字符串

  Byte數組包含的是0-255之間的ASCII碼字符,它不會象字符串那樣被系統作預處理。你可以在很多API函數中用來Byte數組代替字符串。

  例如,下面的代碼中用GetSystemDirectory這個WindowsAPI函數來取得Windows的系統路徑。一共有兩段代碼,一段代碼是傳遞一個字符串來存儲函數返回的系統路徑,另一段代碼是傳遞一個Byte數組來代替字符串。

  為了更好地比較,兩段代碼的不同部分都用黑體標出。讀者可以仔細比較這兩段代碼的差異,這樣您會更深入地理解Byte數組和字符串的差別。

  把這兩段代碼的任何一段放入一個窗體中運行,但擊窗體的空白區域,你將會在窗體中看到Windows的系統路徑。

  下面是使用字符串的代碼:

->
 DimiNullPosAsInteger
 Dim

 iIdx=0
 ReDimpsaStrings(0ToiIdx 1)
 psaStrings(iIdx 1)=""
 Do
  '
  iNullPos=InStr(iPrevPos 1,psMultiCString,vbNullChar)
  IfiNullPos>iPrevPos 1Then
   '把找到的C字符串賦值給字符串數組
   psaStrings(iIdx)=Mid$(psMultiCString,(iPrevPos 1),((iNullPos-1)-iPrevPos))
   iIdx=iIdx 1
   ReDimPreservepsaStrings(0ToiIdx)
   iPrevPos=iNullPos
  Else
   '找到了兩個Null字符,去掉最后一個,然后退出
   ReDimPreservepsaStrings(0ToiIdx-1)
   ExitDo
  EndIf
 Loop
EndSub->

  當調用Win32API函數時,使用這兩個簡單的函數,你可以消除很多冗余的代碼,加快開發步伐。

  注意:

  當你為API的返回值預先分配字符串的空間時,一定不要忘了空間內必須包含Null結束符。另外,建議你在使用API時,最好對每個變量都進行聲明,加上下面這句代碼:

->OptionExplicit->

五、小結

  VB6中字節數組和字符串的相互轉換是編程中,尤其是新手使用中最為頭疼的問題。本文歸納了軟件開發過程中使用二者的典型情況及其應該注意的問題,供參考。不當之處還請讀者批評指正。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久成人免费网站 | 日本最新免费二区三区 | 狠狠色成色综合网 | 欧美14一15sex性hd | 午夜偷拍视频 | 成年人精品视频 | 51色视频| 在线亚洲综合 | 蜜桃视频在线免费播放 | av成人一区二区 | 亚洲九九爱 | 中文在线免费观看 | 99热99精品 | 欧美成人一区二区视频 | 爽爽淫人综合网网站 | 污污的视频在线观看 | chinesehd天美原创xxxx | 黄色男女视频 | 日本a大片 | 视频一区国产精品 | 久久久久国产一区二区三区不卡 | 亚洲免费视 | 亚洲第一成人在线视频 | 在线亚洲播放 | 日韩中文字幕一区二区三区 | 一级免费大片 | 越南一级黄色片 | 免费播放av| 亚洲精品在线观看网站 | 99精品国产一区二区三区 | 羞羞网站在线观看入口免费 | 91精品免费在线 | 午夜热门福利 | 国产精品亚洲精品久久 | 麻豆一二区 | 中文字幕视频在线播放 | 奶子吧naiziba.cc免费午夜片在线观看 | 久艹在线视频 | 久久国产精品二区 | 精品国产91久久久久久浪潮蜜月 | 中文字幕在线播放第一页 |