windows - 将相机集成到 MS Access 时出错
问题描述
我从以下位置获得代码:
https://www.developerfusion.com/thread/46191/how-to-capture-picture-using-webcam-in-vb60/
但是,在使用此代码时,我遇到了编译错误>
此项目中的代码必须更新才能在 64 位系统上使用。请查看和更新声明语句,然后用 PtrSafe 属性标记它们。
我用了 :
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If
它不起作用。
解决方案
#If VBA7
除非您的数据库需要运行Office 2007
或更低,否则不需要条件编译 ( )。如果Office 2010
您只需要最旧的版本
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
因为在 Office x86 和Office x64上VBA7
转换LongPtr
为数据类型。Long
LongLong
认识到参数ms
保持为 a Long
,因为它不是指针/句柄。有关详细信息,请参阅如何将 VBA 中的 Windows API 声明转换为 64 位。
如果您需要在 VBA7 使用之前支持旧的 Office 版本:
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If
推荐阅读
- android - react-native-pdf iOS 和 Android 构建错误
- neo4j - 你如何为每个节点属性的每个元素创建节点?
- javascript - 我无法从 JavaScript 中的数组列表(在表单内)检索数据
- html - 提交表单时:没有声明html文档的字符编码(虽然有)
- java - Javax.Mail (Package javax.mail not visible) Maven 模块化项目
- javascript - 带箭头函数的 SetTimeout 递归
- python - 为什么 Dash 在通过 PyCharm 调试时会抛出 TypeError?
- java - 具有唯一项和线程池的线程安全 FIFO 队列
- flutter - flutter_riverpod 1.0.0 阻止应用程序在 Chrome 中以调试模式运行
- java - 我收到 java.net.SocketException: Connection reset by peer: socket write error , when execution main function in class screenshot