| ID | Asunto | Fecha | Nick | |
| 40609 | Agregar referencia dinamicamente | 21/04/08 14:13 | RaYWoLF | |  |
Buenas! Tengo una aplicación de escritorio que hace uso de una dll que necesita tener una llave usb ("mochila" lo llama alguna gente) para funcionar. El problema es que si esa llave no está enchufada saca un mensaje de error y salta esta excepcion: "Error en una rutina de inicialización de biblioteca de vínculos dinámicos (DLL)." Esto ocurre antes de utilizar ningún método de esa dll (en el momento de cargarla en memoria supongo), por lo que necesitaría que se cargase unicamente cuando un campo de la base de datos lo indicase. Mi duda es: ¿Es posible agregar referencias dinámicamente en tiempo de ejecución? Un saludo y gracias de antemano  |
|
| ID | Asunto | Fecha | Nick | |
| 40693 | Re: Agregar referencia dinamicamente (Resp: 40609) | 23/04/08 15:47 | ht_soft | |  |
No se si sea posiblble lo que dices, pero una forma de darle la vuelta es crear una clase que mande llamar a la que usas para tu trabajo, y encerrar dentro de un try catch la llamada algo como lo siguiente: Supongamos que claseUsb es la que te da el error... Public Class InvocaUsb
public sub new()
try
'intentamos ejecutar el objeto:
dim c as new claseusb()
catch ex as exception
'el proceso falló
end try
end sub
End Class
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40715 | Re: Agregar referencia dinamicamente (Resp: 40609) | 24/04/08 01:03 | archangelr_m | | |
El problema es que no encuentra la DLL no?
Si deseas cargar dinamicamente la DLL usa reflexion, si deseas cambiar de ubicacion tu DLL puedes usar un archivo de configuracion con el atributo CODEBASE para indicarle donde buscar tu DLL pero como la colocas en un dispositivo USB entonces la ruta puede variar
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 40926 | Re: Agregar referencia dinamicamente (Resp: 40609) | 29/04/08 10:50 | RaYWoLF | | |
Buenas. Lo primero de todo gracias a los 2 por las respuestas. Al final lo he solucionado creando una clase que enmascare la llamada a la dll, tal y como dijo ht_soft. Respecto a tu respuesta archangelr_m, creo que no me entendiste bien (o no me explique bien yo). No es que tuviese la dll en una memoria usb, sino que para poder llamar a métodos de esa dll es necesario tener enchufado un usb que detecta que has pagado la licencia para usar la dll, etc. Vamos que es un anticopia por decirlo de alguna manera. De todas formas me hago una nota mental con lo que contaste, que puede ser util en otras ocasiones 
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |