![]() |
Como evito error cuando no esta una Dll??
Buenos Dias:
Les consulto a ver si existe una solucion a este tema... tengo un programa en el cual invoco una dll. de la siguiente manera
Imaginemos que la dll se borro por "arte de magia" ... entonces cuando ejecuto el programa me dice No se encuentra la biblioteca de vinculos dinamicos.. blablabla... O sea me dice que falta la dll... el tema es asi... no hay manera de que cuando pasa esto se pueda generar una excepcion o algo... quiero que el programa funcione ... Ademas.. en mi ejecutable tengo la dll dispuesta a copiarse al directorio, pero evidentemente primero busca las dll's antes de hacer cualquier cosa... No se que puedo hacer para que me deje copiarla (eso esta resuelto) ,, o sea que las invocaciones se hagan mas tarde.. emmm espero que me entiendan... Gracias!!! |
La culpa la tiene el enlace estatico en el ejecutable: Intenta cargar el enlace a la DLL antes de que empiece ninguna linea de codigo. La solucion pasa por llamar a las dll mediante enlaces dinamicos, aunque esto tiene el inconveniente de que si tienes muchas llamadas a la funcion tendrias que modificar mucho codigo.
Aunque tambien puedes solucionarlo lanzando un pequeño programa cargador antes de que se ejecute el tuyo propio, que intente copiar la dll y si no puede es que existe o esta en ejecucion en memoria. Un saludo |
estuve mirando el tema, siempre cargue las dll estaticamente...
estuve mirando el comando loadlibrary y cambie la declaracion.. pero no me anda... alguien puede postear un ejemplo claro de carga dinamica? porque llamo la dll es un procedure y no me da ni la hora... o sea no funciona... |
Hola,
Esto podría ser al menos una forma de llamar a una función situada en una librería realizando la carga de estas dinámicamente, como dicen que se dice. Es muy posible que no sea la única forma de hacerlo. Se trata, en este caso, de cargar la función "ShowCursor" que se encuentra en la librería "user32.dll". Alguna vez he enlazado aquí a cierto artículo de Néstor Freire titulado "Cómo crear y utilizar las librerías en nuestros programas". ;) De todas formas Víctor, se me ocurre que hagas lo que te han sugerido, que me parece que podría funcionar, si es que no hay algún inconveniente en hacer algo como lo siguiente: que lo primero de todo en tu programa sea extraer la "DLL" que lleva incorporada y copiarla donde sea menester... ¿o es que se me escapa algo? ;) |
Increible
Cita:
|
La franja horaria es GMT +2. Ahora son las 13:00:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi