Cambio de 32 bits a 64 bits |
Responder ![]() |
Autor | |
Entrenador10 ![]() Habitual ![]() Unido: 27/Mayo/2010 Estado: Sin conexión Puntos: 59 |
![]() ![]() ![]() ![]() ![]() 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: 12191 |
![]() ![]() ![]() ![]() ![]() |
¿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 |
![]() ![]() ![]() ![]() ![]() |
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: 12191 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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: 12191 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |