VBA内如何处理调用dll里的Null参数

bluesnail1986 2016-09-21 02:29:05
VBA里调用dll里的函数,这些函数有可能有指针类型的参数,而有时候调用时这些参数不能传有效值进去。例如ReadFile,最后一个参数如果是Null就代表用同步的方式去读取COM口数据。问题是,在VBA里调用这种函数时,怎么将ByRef传递的参数写成空呢?
...全文
255 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesnail1986 2016-09-22
  • 打赏
  • 举报
回复
引用 4 楼 Chen8013 的回复:
你要把参数类型改为Long、 或者 Any 。 调用时 Byval 0 就表示“NULL”。
嗯,今天找到方法了,是我自己把指针和ByRef理解混淆了。 不过你说的是对的。
舉杯邀明月 2016-09-21
  • 打赏
  • 举报
回复
你要把参数类型改为Long、 或者 Any 。 调用时 Byval 0 就表示“NULL”。
bluesnail1986 2016-09-21
  • 打赏
  • 举报
回复
引用 1 楼 of123 的回复:
试试直接写 0。 例: Private Declare Function SendMessagebyString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long SendMessagebyString cboFile.hWnd, CB_SETDROPPEDWIDTH, DROPPEDWIDTH, 0
回错帖子了,回给我自己了... 试过了,会报错,提示与ByRef类型不匹配 不止是0,Null/Nothing也都试过,都不行 Private Declare PtrSafe Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long 最后一个参数,怎么写成空?
bluesnail1986 2016-09-21
  • 打赏
  • 举报
回复
引用 楼主 bluesnail1986 的回复:
VBA里调用dll里的函数,这些函数有可能有指针类型的参数,而有时候调用时这些参数不能传有效值进去。例如ReadFile,最后一个参数如果是Null就代表用同步的方式去读取COM口数据。问题是,在VBA里调用这种函数时,怎么将ByRef传递的参数写成空呢?
试过了,会报错,提示与ByRef类型不匹配 不止是0,Null/Nothing也都试过,都不行 Private Declare PtrSafe Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long 最后一个参数,怎么写成空?
of123 2016-09-21
  • 打赏
  • 举报
回复
试试直接写 0。 例: Private Declare Function SendMessagebyString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long SendMessagebyString cboFile.hWnd, CB_SETDROPPEDWIDTH, DROPPEDWIDTH, 0
酷家乐是一款在线3D 云设计平台,主打家装、公装、全屋定制等设计场景,以云端协同、极速渲染、海量素材为核心优势,支持网页与客户端双端使用,助力设计师、装企高效完成设计、营销与交付,打通设计到施工全链路,兼顾 0 基础上手与专业落地需求酷家乐: 极速户型设计:支持 CAD 导入识别、户型库搜索匹配,10 秒生成 3D 户型,覆盖全国 90% 小区户型酷家乐。 海量素材库:1.5 亿 + 家具 / 建材模型、3000 万 + 设计方案,拖拽即用,快速匹配创意酷家乐。 云端极速渲染:秒级出图,支持照片级效果图、32K 极清输出,无需排队等待酷家乐。 全景 / 视频生成:一键制作 720° 全景图、生长动画、漫游视频,助力方案可视化营销酷家乐。 全屋定制设计:柜体结构自由设计,风格材质快速切换,支持一键拆单与精准报价酷家乐。 专业施工图输出:模型即图纸,一键导出全套施工图,含尺寸标注、节点图,效率提升 80%酷家乐。 AI 智能辅助:AI 户型匹配、智能改图、灯光仿真,降低设计门槛,提升创意落地速度。 团队协作管理:支持多账号权限设置、方案统一管理,保障企业素材与方案安全酷家乐。 硬装精细化设计:瓷砖 / 墙板 / 吊顶智能铺贴,支持自定义排料与算料清单导出。 生产对接能力:对接主流拆单软件,AI 工艺规则检测,自动纠错,实现设计到生产数据同源酷家乐。

2,506

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧