VB6 實現從位元組到具體資料型別的轉換

2021-06-05 23:43:36 字數 1382 閱讀 1487

對於微控制器軟體工程師在設計上下位機通訊時,經常會遇到這樣乙個問題,那就是如何傳遞乙個float或者說是double或者是long 型別的資料,這些資料是由多個位元組組成的,那麼符合實現傳送和在vb6中接收,以及將資料還原是個問題。

事實上在c/c++中要實現很簡單,只要通過指標和位元組訪問即可!

下面來看乙個使用turbo c 2.0做的例子:

到此我們知道乙個資料類新是如何在c中實現位元組操作的,相信大家也應該知道怎麼把乙個float從串列埠中傳送出去了吧,那麼下面的工作就是如何在vb6中將收到的4個位元組資料進行還原咯!

前面我們已經知道乙個float型別的資料,當其值為3.14的時候,其值在記憶體中佔據4個位元組,其內容用十六進製制表示為0xc3,0xf5,0x48,0x40

在vb中的**實現如下:

private declare sub copymemory lib "kernel32" alias "rtlmovememory" (destination as any, source as any, byval length as long)'記憶體拷貝

private declare function varptr lib "msvbvm60.dll" (var as any) as long'指標操作

private sub form_load()

dim f as single

dim b(4) as byte

b(0) = &hc3

b(1) = &hf5

b(2) = &h48

b(3) = &h40

copymemory byval varptr(f), b(0), 1'類似於c中的指標操作,將資料填充到其對應的位元組位置中

到此,相信大家應該可以很容易實現任意資料型別的傳遞以及在上位機中準確顯示了!

VB6實現網路連通檢測

private sub form load if isconnected true then msgbox 您已經連通了inter end if if isconnected false then msgbox 您還沒有連通 inter end if end sub option explicit ...

VB6中模擬按鈕的實現

朋友發來乙個 vb6 的小要求 自行繪製按鈕,並且按鈕不能有控制代碼,不得用 image 控制項,需要支援單擊事件,滑鼠移動上去會變化。感覺像個考試題啊!先貼 思路就是 使用 paintpicture 在窗體上作圖,使用mousemove事件判定滑鼠是否在的位置上,如果是則繪製滑鼠移動浮動後的,否則...

VB6用API實現繁體簡體轉換

由於正好需要乙個繁體轉簡體的事情,弄這個函式將就用一下了。private declare function lcmapstring lib kernel32 alias lcmapstringa byval locale as long,byval dwmapflags as long,byval ...