ayuda Instalación dll


(Maria) #1

Buenas a todos,

Tengo un problema al utilizar un dll (vxScript.dll), cuando intento utilizarla me muestra el mesaje "Access vioation at address 045046F7 in module vxScript.dll. dll. read of address 0000006D".

 

Lo he intentado en varios ordenadores y me pasa lo mismo, la tengo añadida en system 32 y en donde esta el Vclient.

¿Que me falta o que estoy haciendo mal?

He puesto ya varios post pero todavia no tengo solución.

 

muchas gracias


([N4] eic) #2

Hola.

En V7, si vas a utilizar una DLL, lo mejor es que la tengas incluida en tu proyecto como archivo adjunto (ver http://velneo.es/info_v7_74_es/velneo_vdevelop_v7/proyectos_objetos_y_editores/fichero_adjunto ). Así te aseguras que siempre que el cliente ejecute la aplicación, ese fichero adjunto va a estar en la caché de Velneo, que es el primer directorio donde irá a buscarla.

Ese error, de todos modos, te podría salir porque:

- La instrucción que intentas ejecutar con vxScript tiene algún problema. ¿Te ocurre siempre que intentas usarla, o sólo con algunas instrucciones?

- O quizá no es totalmente compatible con tu S.O. ¿Usas un S.O. de 64 bits?

La OpenApp "Tutor de vxWinScript" utiliza la librería vxScript.dll. Puedes probar a instalarla, y ver si también te sigue dando errores.

Saludos,

Fran Varona

 


(Maria) #3

El problema me está dando en la OpenApp de Firma Digital  http://velneo.es/vfirmadigital/, si embargo como dices La OpenApp "Tutor de vxWinScript" no me da ningún error.

 ¿Que cebo hacer?

 

[attachment=11852,1103]


([N4] eic) #4

Hola.

Te cuento lo que he hecho:

- En la página de la OpenApp, hay un enlace de un fichero aeatfact.cab. Lo descargué.

- Lo descomprimí para encontrar un fichero aeatfact.dll. Lo guardé en una carpeta temporal

- Ejecuté el comando: "regsvr32 c:tempaeatfact.dll" para registrar la dll.

- Ejecuté la OpenApp directamente desde el servidor demo. Utilizo un certificado mío (no me da opción a escoger el certificado, sólo puedo poner el NIF). No me da ningún error, pero si firmo un fichero pdf, el fichero resultante (pongo un nombre distinto) ya no se puede abrir; si firmo un fichero xls, el fichero resultante tampoco se puede abrir. No sé si sólo puedo firmar algún tipo de archivo concreto.

Al menos, no me da el error que a ti. Probado en XP SP3.

Saludos,

Fran Varona

 


(Maria) #5

Hola,

Pues ya habia hecho lo mismo, pero por si me habia saltado algún paso volví a hacer todos los pasos, descarge ambas dll en System 32, registre la dll de la eat (tambien intenté registrar la vxScript, pero no es registrable), tengo mi certificado instalado en el ordenador.

 

Lo estoy intentando desde vista, pero lo intenté en otros ordenadores y me paso lo mismo.

 

Sigo igual.


([N1] mirna) #6

A ver foro, soy yo otra vez!

Me pasa algo similar con una dll de una impresora fiscal Bematech, con ayuda de un forero (Frugulletti) que amablemente me pasó un trabajo que había realizado en V6.x, declaré la DLL y todas sus funciones, añadí un archivo adjunto con la DLL al proyecto, guardé la dll en system32 y en directorio de Velneo, intenté registrar la DLL pero aunque la reconoce me da un error (por lo visto no requiere registro directo) y finalmente ayer nuevamente con ayuda de Frugulleti hicimos una prueba con la V6 y funcionó, es decir la dll es correcta. Sin embargo, pareciera que nos hemos saltado algún paso, porque sigue sin funcionar en V7, ¿se le ocurre a alguien una idea?

Gracias!!


([N1] mirna) #7

olvidé un pequeño detalle “el problema”. Lo que ocurre es que el sistema me dice que la DLL es inexistente y da un error de comunicación con la impresora.


([N1] mirna) #8

Para ilustrar mejor mi caso, voy a ponerles las dos pantallas con un ejemplo a ver si alguien ve el problema de una vez. En V6 funciona, en V7 no, ya probé con ponerle la convención C_default.

Cualquier ayuda es bienvenida,
Gracias mil!! [attachment=25913,2019] [attachment=25913,2020]






([N4] bitcodesoft) #9

Deja la convención de la DLL a C_DEFAULT, en en cada función de la librería la convención tiene que ser C_X86_WIN32_STD, y los nombres de la funciones, ponlos tal cual están declarados en la librería no en mayúsculas:

Ejemplo: Bematech_FI_LecturaX
IDENTIFICADOR: BEMATECH_FI_LECTURAX
NOMBRE: Bematech_FI_LecturaX


([N4] bitcodesoft) #10

¿La ejecución de la librería con v6 y v7 son en el mismo PC?, de lo contrario algunas librerías necesitan de sus correspondientes runtimes, pero supongo que ya has tenido en cuenta esto.
Al arrancar el vClient, fíjate en la barra de estado, si no puede cargar la librería muestra un mensaje informativo al respecto.


([N1] mirna) #11

Gracias Bitcodesoft voy a probar el C_default en la libreria y el X86_win32_STD en las funciones, como me dices a ver. Si la ejecuciòn es la misma màquina,


([N1] mirna) #12

Hola!!!, ya hice las pruebas que me dijeron y sigue sin funcionar, le puse C_DEFAULT en la librería y X86_win32_STD en las funciones y corregí lo de las mayúsculas, no logro ver ningún error en el VCLIENT, si lo está dando es tan rápido que no se aprecia. ¿Alguna otra idea? Anexo la pantalla. Por cierto, en algunas funciones que tienen parámetros, en V6 eran LPSTR, aqui son Char ¿cierto?

Gracias mil!!! [attachment=25924,2021]




([N4] bitcodesoft) #13

En tipo de parámetro tienes que poner const char* para LPSTR


([N1] mirna) #14

Ok, sin embargo, hago la prueba con una función que no pide parámetros e igual me dice que la DLL es inexistente


([N4] bitcodesoft) #15

Comprueba que los nombres coincidan exactamente con los que tienes en la función, sin espacios antes o después del nombre. Por cierto has copiado el objeto DLL o lo has creado desde cero, ¿has probado a reiniciar el servidor?.


([N1] mirna) #16

Si, los nombres coinciden, de hecho están funcionando en V6, la DLL es propia del fabricante del equipo…ya acabo de reiniciar el server y nada :frowning: Estoy segura que debe ser una tontería

Gracias nuevamente!


([N4] bitcodesoft) #17

¿La DLL está en el el system32 o en el dir del vClient?, prueba a copiarla en alguno de estos directorios.
La verdad es que sin ver más detalladamente el proyecto no se me ocurre nada más.


([N1] mirna) #18

En ambas direcciones está la dll. Te paso algunos prints de lo que estoy haciendo a ver si te da “luces”. le puse C_X86_WIN32_STD a todo pq soporte me dijo que era así, de todas formas igual probé como me dijiste, adicional a lo antes comentado, revisé que las dll estuvieran en la carpeta Cacherun q tambien me dijo Soporte, asi como que el proceso esta corriendo en 1er plano

De verdad mil gracias por tu tiempo!!!

[attachment=25935,2022] [attachment=25935,2023]






([N1] mirna) #19

Algo más…el error que me da según la impresora es “Error de comunicación con la impresora” lo cual significa que la comunicación dio Retorno 0, pero abajo en la aplicación me dice Error. Dll 3hv024ep.vcd@BEMAFI32 inexistente


([N4] bitcodesoft) #20

¿Has copiado el objeto de un proyecto a otro?, si es así elimina el objeto DLL y vuelve a crearlo en el proyecto actual, pasos a seguir:

1º Consulta la documentación de la DLL, la convención de la DLL ponla a C_DEFAULT y en cada función de la misma
C_X86_WIN32_STD, si la documentación te dice otra cosa hazlo.

2º Borra la DLL del Cacherun , y ponla en system32 o en su defecto en el directorio del vClient

3º Comprueba en las propiedades del proyecto del objeto DLL su id de fichero sea “3hv024ep.vcd”, si tiene otro identificador, este es el problema, la referencia a la DLL esta mal resuelta, elimina el objeto DLL y vuelve a crearlo.

El error que te está dando es porque el vClient no encuentra la referencia “3hv024ep.vcd”, o el nombre de la función está mal escrito, así que te aconsejaría que eliminases el objeto DLL y lo volvieses a crear.

Si quieres ayuda más precisa tendrás que pasarme la DLL, te la pongo en una caja la heredas y verás cómo te funciona, más no puedo hacer.