Ayuda... simple kiza... x)

Iniciado por DarkFire, 20 Marzo 2010, 04:03 AM

0 Miembros y 1 Visitante están viendo este tema.

DarkFire

holas, ante todo un saludo y expongo mi problema:

estoy haciendo una aplicacion que rekiere que registre una dll.
esa dll se usara como referencia.
lo que hace mi programa es registrar la dll via cmd para luego unas lineas mas abajo usar la referencia y cuando procedo a darle un path que incluye "Environ" 1 linea antes de usar la referencia me sale el siguiente error:

"Error de compilacion

no se puede encontrar el proyecto o la biblioteca"

lo que si me doy cuenta es que cuando cierro el proyecto y lo abro denuevo y lo ejecuto todo sale normal, pero es porke la dll ya esta registrada...

si alguien supiera ayudarme se lo agradeceria mucho X_X... >:(

BlackZeroX

Anda a

menú Proyecto->Referencias

Revisa las referencias con palomita y verifica que ninguna diga

FALTA:+Nombre de Libreria

Si es el caso quita la referencia y vuelvela a integrar si es que realmente la requieres!¡.

Sangriento Infierno Lunar!¡.
The Dark Shadow is my passion.

DarkFire

Cita de: BlackZeroX▓▓▒▒░░ en 20 Marzo 2010, 07:12 AM
Anda a

menú Proyecto->Referencias

Revisa las referencias con palomita y verifica que ninguna diga

FALTA:+Nombre de Libreria

Si es el caso quita la referencia y vuelvela a integrar si es que realmente la requieres!¡.

Sangriento Infierno Lunar!¡.

mmm... bueno eso si lo se, el punto es que mi programa instala la dll de la referencia y ahi nomas tiene que usarla, pero parece como si tuviera que reinciar la aplicacion para que recien pueda validarse que la dll fue instalada...

alguna otra solucion X_X?

BlackZeroX

la dll esta generada por ti?, esta en vb6?

Si ambas son si agrega los dos proyectos en un grupo de proyectos...

si las respuestas son de una dll compilada y ajena a tu uso entonces deberas de registrarla, para evitar dicho problema, aun que Cobein me parece dio unas soluciones (Ligas a posibles soluciones mejor dicho)...

Sangriento Infierno Lunar!¡.
The Dark Shadow is my passion.

DarkFire

plop, creo que no me stoy dejando entender... lo expondre asi:

1- Tengo una dll llamada "mydllok.dll".
2- "mydllok.dll" es usada para poder usar una referencia en vb que usa mi aplicacion.
3- como el usuario no tiene la dll instalada, lo que hago es que:
--- mi propia aplicacion (...la que justamente usará esa misma referencia mas adelante) la instale.
--- la instala haciendo una llamada al cmd y registrandola (correctamente obviamente)
4- luego de haberla "registrado", hace un llamado a una funcion
5- la funcion hace un llamado de una ruta del sistema "Environ("tmp")"
6- al llegar a esta linea es donde me sale el error anteriormente expuesto:
---"Error de compilacion

no se puede encontrar el proyecto o la biblioteca"
7- si reinicio la aplicacion al momento de llegar al "paso" nº 5 este funciona sin error alguno, asi que por lo tanto intuyo que:
--- el problema se da porke al ejecutarse la aplicacion y no tener la dll de la referencia registrada mi aplicacion generar ese error.


bueno, creo que ahora kiza dejo entender mi problema, y espero alguien pueda ayudarme.

Hasseds

Como alternativa (hasta que encuentres el error) puedes crear una segunda aplicacion que encargue de registrar y luego ejecute tu aplicacion principal.

1) ejecutas tu aplicacion principal

2) cuando esta llega a la linea  que te tira el error entonces
   A) si te tiró el error y antes de cerrarla llamas al tu segunda aplicion, esta segunda aplicacion registra la DLL y tambien antes de cerrarla vuelve a ejecutar desde la misma tu aplicacion principal.

  B) si  tu aplicacion principal no te tira el error sigue adelante sin llamar a la segunda aplicion


PD: en cuanto al error en sí, no necesitarás una pausa entre el registro de la DLL y el llamado a la funcion que te tira el error ?

Sergio Desanti

DarkFire

Cita de: Hasseds en 21 Marzo 2010, 13:06 PM
Como alternativa (hasta que encuentres el error) puedes crear una segunda aplicacion que encargue de registrar y luego ejecute tu aplicacion principal.

1) ejecutas tu aplicacion principal

2) cuando esta llega a la linea  que te tira el error entonces
   A) si te tiró el error y antes de cerrarla llamas al tu segunda aplicion, esta segunda aplicacion registra la DLL y tambien antes de cerrarla vuelve a ejecutar desde la misma tu aplicacion principal.

  B) si  tu aplicacion principal no te tira el error sigue adelante sin llamar a la segunda aplicion


PD: en cuanto al error en sí, no necesitarás una pausa entre el registro de la DLL y el llamado a la funcion que te tira el error ?



con respecto a la pausa, como te digo lo probe con f8 todo el tiempo... =/... osea hay pausa mas que suficiente... o a que te refieres X_X?

Hasseds

#7
Me referia a una pausa en el code hasta que se termine de Ejecutar el llamado a CMD, pero si ya lo habias probado lo descartas, S2







Sergio Desanti

seba123neo

Hola, primero no sabria decirte si te lo va a dejar hacer...corriganme por favor si me equivoco en lo que voy a decir.... ya que nunca lo he probado, pero cuando ejecutas el .exe este carga las referencias que va a usar la aplicación, pero si supongamos ejecutas tu .exe cuando la libreria todavia no ha sido registrada..por mas que la registres "on the fly" en el programa..al momento de usarla te va a tirar error igual por mas que la registres, ya que solo carga las referencias cuando inicia el .exe y no se "actualiza" mientras el programa esta en ejecucion y por eso te funciona cuando cerras el proyecto y lo volves a ejecutar...corriganme eso..solo abria que hacer una simple prueba de lo que digo...ejecutar un programa que use cualquier .OCX o .DLL y tratar de simular es , desregistrandola mientras esta en ejecucion el programa, pero ahora no puedo probar nada...

igualemente no se porque lo haces asi...y no lo haces normal como cualquier aplicación...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

DarkFire

bueno la razon por la que lo hago asi es porke mi aplicacion hace actualizaciones... y en este cazo al hacer la actualizacion ahora necesita utilizar la una dll... la cual la baja y tendria que registrarla para poder usarla... y mas bn lo que stoypensando hacer ya que no creo que encuentre una solucion es usar un code que reinicia mi aplicacion en caso de error x)...