• Domingo 22 de Diciembre de 2024, 23:28

Autor Tema:  Ayuda Plx  (Leído 1420 veces)

carlos_stgo_18

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Ayuda Plx
« en: Viernes 1 de Septiembre de 2006, 02:48 »
0
Holap, me encuentro en una situacion media complicada necesito hacer un ""Dynamic Linking Library"" osea agarrar una dll en tiempo de ejecucion o "run-time", no e podido lograr que me resulte en vb.net se como hacerlo en c y+ pero necesito hacerlo en vb y tengo un problema no me funciona noce si estare mal pero aqui les dejo el codigo para que lo vean aver en q' me equivoque detallare un poco aver si entienden para los que no cachan o no se enrreden bueno es mas que nada para que entiendan mejor mi problema:

Dim A As Assembly = Assembly.LoadFrom("ladll.dll") ' aqui se pone el nombre de la dll que queremos cargar
Dim items As String() = A.CreateInstance("elemsamblado.laclase.funcion1")'aqui va la funcion que queremos llamar

bueno ai se supone que deberia de aver cargado la dll y aver devuelto los datos que pedi pero ni caso S: no me funciona

PD; de ante mano muchas gracias

Name : Carlos Queraltó
Edad ]18[/color]
Trauma : un smegol' =O
Lo que mas me gusta]Carretear y disfrutar con mis amigos \":)\"[/color]
Que soy : Lo que soy
Que quiero ]Ser ingeniero =O ( soy meo mula = xD )[/color]
Como me dicen : Taka
Hobby ]el carrete y la programacion[/color]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Plx
« Respuesta #1 en: Viernes 1 de Septiembre de 2006, 04:21 »
0
lo primero es que hasta donde recuerdo esto:

Código: Text
  1. Dim items As String() = A.CreateInstance("elemsamblado.laclase.funcion1")
  2.  
esta mal.

porque debe s3er sino estoy mal:

Código: Text
  1. Dim items As String() = A.CreateInstance("NamesPace.Clase.funcion1")
  2.  

En la ayuda especificamente dice que va el nombre del namespace y el de la clase, pero no dice nada del nombre del ensamblado.

Lo correcto... supongo es que de primeras debes instanciar la clase que has cargado:

C#
Código: Text
  1. //Se carga el ensamblado
  2. Assembly A = Assembly.LoadFrom("ladll.dll");
  3.  
  4. //Se crea una instancia de una de las clases que hay en el ensamblado
  5. object instancia = A.CreateInstance("NamesPace.Laclase");
  6.  
  7. //Obtenemos la infromacion del metodo
  8. MethodInfo mi = instancia.GetMethod("laFuncion");
  9.  
  10. //Lo invocamos sin para,etros (null)
  11. mi.Invoke(instancia, null);
  12.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

carlos_stgo_18

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Ayuda Plx
« Respuesta #2 en: Viernes 1 de Septiembre de 2006, 04:29 »
0
eaea :)

Gracias me sirvio N tu ayuda man  :rolleyes:

aa i en cuanto a lo de el ensamblado yo me abia equivocado si tenia claro que era el namespace pero en cuanto al nombre es casi lo misco casi siempre  :D

Bueno eso gracias

aora le aplicare  :comp:  xD

Name : Carlos Queraltó
Edad ]18[/color]
Trauma : un smegol' =O
Lo que mas me gusta]Carretear y disfrutar con mis amigos \":)\"[/color]
Que soy : Lo que soy
Que quiero ]Ser ingeniero =O ( soy meo mula = xD )[/color]
Como me dicen : Taka
Hobby ]el carrete y la programacion[/color]

carlos_stgo_18

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Ayuda Plx
« Respuesta #3 en: Viernes 1 de Septiembre de 2006, 05:32 »
0
Yiap estube trabajando en el codigo y me di cuenta que traduciendo exactamente este codigo me da excepcion :

Código: Text
  1.  
  2. //Se carga el ensamblado
  3. Assembly A = Assembly.LoadFrom("ladll.dll");
  4.  
  5. //Se crea una instancia de una de las clases que hay en el ensamblado
  6. object instancia = A.CreateInstance("NamesPace.Laclase");
  7.  
  8. //Obtenemos la infromacion del metodo
  9. MethodInfo mi = instancia.GetMethod("laFuncion");
  10.  
  11. //Lo invocamos sin para,etros (null)
  12. mi.Invoke(instancia, null);
  13.  
  14.  

TRADUCIDO a VB.NET seria algo asi

Código: Text
  1.  
  2. //Se carga el ensamblado
  3. Dim A as Assembly = Assembly.LoadFrom("ladll.dll");
  4.  
  5. //Se crea una instancia de una de las clases que hay en el ensamblado
  6. Dim Instancia as Object = A.CreateInstance("NamesPace.Laclase");
  7.  
  8. //Obtenemos la infromacion del metodo
  9. Dim Mi As MethodInfo = Instancia.GetMethod("LaFuncion")
  10.  
  11. //Lo invocamos sin para,etros (null)
  12. mi.Invoke(instancia, Nothing);
  13.  
  14.  

bueno la excepcion se da en esta linea

Código: Text
  1.  
  2. Dim Mi As MethodInfo = Instancia.GetMethod("LaFuncion")
  3.  
  4.  

Ya que GetMethod no es miembro de Instancia asi que cambie un pequeño detalle y quedo asi en realidad no es nada pero es para aclarar para la gente que desea aprender

Código: Text
  1.  
  2. Dim Mi As MethodInfo = Instancia.GetType.GetMethod("LaFuncion")
  3.  
  4.  

Bueno eso seria  :rolleyes:  Enyoi It? xD

Name : Carlos Queraltó
Edad ]18[/color]
Trauma : un smegol' =O
Lo que mas me gusta]Carretear y disfrutar con mis amigos \":)\"[/color]
Que soy : Lo que soy
Que quiero ]Ser ingeniero =O ( soy meo mula = xD )[/color]
Como me dicen : Taka
Hobby ]el carrete y la programacion[/color]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Plx
« Respuesta #4 en: Viernes 1 de Septiembre de 2006, 12:37 »
0
;)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io