首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel CopyMemory 4字节到整数

Excel CopyMemory 4字节到整数
EN

Stack Overflow用户
提问于 2022-01-19 18:54:04
回答 1查看 104关注 0票数 0

我试图将四个字节复制到一个整数变量中。简而言之,我想在vba中执行UNION。我的职能:

代码语言:javascript
复制
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal Length As Long)

代码语言:javascript
复制
Function Byte2Int32(ByVal Num1 As Byte, ByVal Num2 As Byte, ByVal Num3 As Byte, ByVal Num4 As Byte) As Integer
  Dim D As Integer
  Dim TabData(3) As Long
  
  TabData(0) = Num4
  TabData(1) = Num3
  TabData(2) = Num2
  TabData(3) = Num1
  
  CopyMemory D, TabData(0), 4
  Byte2Int32 = D
  
End Function

函数调用:=Byte2Int32(C6;D6;E6;F6),其中C6 = 40,D6 = 20,E6 = 50,F6 = 68。结果: 68例。为了复制内存,我应该更改什么?最终,该函数应该适用于变量双倍?对于两个字节,它可以工作。

EN

回答 1

Stack Overflow用户

发布于 2022-01-19 19:16:48

函数上的某些类型是不正确的。这个版本似乎正在发挥作用:

代码语言:javascript
复制
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal Length As Long)

Function Byte2Int32(ByVal Num1 As Byte, ByVal Num2 As Byte, ByVal Num3 As Byte, ByVal Num4 As Byte) As Long
  Dim D As Long
  Dim TabData(3) As Byte
  
  TabData(0) = Num4
  TabData(1) = Num3
  TabData(2) = Num2
  TabData(3) = Num1
  
  CopyMemory D, TabData(0), 4
  Byte2Int32 = D
End Function
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70776269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档