Cambio de 32 bits a 64 bits |
Responder |
Autor | |
Entrenador10
Habitual Unido: 27/Mayo/2010 Estado: Sin conexión Puntos: 59 |
Tema: Cambio de 32 bits a 64 bits Enviado: 16/Septiembre/2020 a las 11:46 |
Buenos días, tengo una aplicación en Access 2010 de 32 bits que la he convertido para Access 2010 de 64 bits. Ya tengo depurado todo el código. Sólo me resta convertir el módulo que adjunto. Al depurarlo me señala un error en el campo marcado en amarillo y me sale una ventana emergente donde indica que no coinciden los tipos. ¿Cómo puedo solucionarlo? Muchas gracias. Private Function HandleToDeviceID(hDevice As Long) As String Dim strDeviceID As String Dim cDeviceID As Long
If CM_Get_Device_ID_Size(cDeviceID, hDevice, 0) = 0 Then strDeviceID = Space(cDeviceID)
If CM_Get_Device_IDA(hDevice, StrPtr(strDeviceID), cDeviceID, 0) > 0 Then strDeviceID = StrConv(strDeviceID, vbUnicode) strDeviceID = Left(strDeviceID, cDeviceID) Else strDeviceID = "" End If End If
HandleToDeviceID = strDeviceID End Function
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 16/Septiembre/2020 a las 12:12 |
¿Y cuál es la línea amarilla?
Probablemente está esperando un tipo LongPtr en vez de un Long.
|
|
Entrenador10
Habitual Unido: 27/Mayo/2010 Estado: Sin conexión Puntos: 59 |
Enviado: 16/Septiembre/2020 a las 12:39 |
Muchas gracias, Mihura, por tu rápida respuesta. Perdón, que al copiarlo no lo he marcado. Marca el error en StrPtr. Ayer puse el LongPtr y entonces me marcaba el error en cDeviceID. Gracias
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 16/Septiembre/2020 a las 13:03 |
Eso está tirando de funciones ... API's ... postea aquí también como las has cambiado
|
|
Entrenador10
Habitual Unido: 27/Mayo/2010 Estado: Sin conexión Puntos: 59 |
Enviado: 16/Septiembre/2020 a las 13:11 |
Lo único que he hecho ha sido incluir el término PtrSafe en todas las instrucciones Public Function, Quedando las instrucciones así Public PtrSafe Function. Hice la prueba eliminando la instrucción que me está dando problemas, y se compiló perfectamente y funcionó bien en Access 2010 de 64 bits
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 16/Septiembre/2020 a las 13:48 |
Hay que hacer mas cosas:
https://docs.microsoft.com/es-es/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office https://docs.microsoft.com/es-es/office/troubleshoot/office-suite-issues/win32api_ptrsafe-with-64-bit-support
Editado por Mihura - 16/Septiembre/2020 a las 13:49 |
|
Entrenador10
Habitual Unido: 27/Mayo/2010 Estado: Sin conexión Puntos: 59 |
Enviado: 16/Septiembre/2020 a las 14:04 |
Genial. Reviso los dos enlaces. Muchas gracias
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |