vba - `Sub` 有指针吗?
问题描述
感谢您阅读本文。
我偶然发现了这个问题。我们都知道Function
有指针。以这个为例:
Function TestPrint2(ByVal NameIn As String)
TestPrint2 = NameIn
End Function
TestPrint2
我们可以通过使用得到指针VarPtr(TestPrint2("Hello World!"))
我们可以将上面的代码写成Sub
:
Sub TestPrint1(ByRef NameOut As String, ByVal NameIn As String)
NameOut = NameIn
End Sub
感谢以下评论,我发现子/函数确实有自己的指针。(先生,我不是基于 CS 而是基于金融)。我用这些潜艇来测试:
Function GetBaseAdd(lngadd As LongPtr) As LongPtr
GetBaseAdd = lngadd
End Function
和这个
Sub TestGetBaseAdd()
Debug.Print "Pointer of Sub TestPrint1 " & GetBaseAdd(AddressOf TestPrint1)
Debug.Print "Pointer of Sub TestPrint2 " & GetBaseAdd(AddressOf TestPrint2)
Debug.Print "Pointer receiving return from TestPrint2 " & VarPtr(TestPrint2("Hello World!"))
End Sub
解决方案
推荐阅读
- python - while 循环没有进行到下一次迭代
- redis - 使用 serde_json 解析 JSON 字符串
- git - 使用 Jenkins 复制 github 存储库
- wordpress - 当我在ubuntu中更改phpstorm中的代码时,是否存在重新加载浏览器的方法?
- linux - 在不阻塞和关闭读取器的情况下连续写入管道
- android - 启动时颤动状态栏颜色
- python - pandas:根据其他列用一个特定行替换多行中的一个单元格的值
- c# - Redis 超时错误
- python - Tkinter OptionMenu 在我添加值时没有更新
- javascript - Discord.js v12 如何检查某个频道中的消息是否为视频附件?