• Sábado 14 de Diciembre de 2024, 14:52

Autor Tema:  Error En Aplicacion Dll  (Leído 3884 veces)

ckrings

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Error En Aplicacion Dll
« en: Miércoles 8 de Agosto de 2007, 18:03 »
0
Hola:
   He utilizado un ejemplo de hacer una DLL en Visual C++ 6.0 , este ejemplo solo suma dos enteros y devuelve el resultado.
   Despues de copiar todo el ejemplo, compilar, etc.etc. He creado mi formulario en Visual Basic para probarlo, al ejecutar el formulario me da el siguiente error:

                    "Error de Compilacion:
                    "Numero de argumentos erroneo o asignacion de propiedad no valida"

He buscado por toda la red y lo unico que encontre fue que habia que utilizar
__stdcall en la declaracion de las funciones pero de todas formas no funciona.

Ojala me puedan ayudar ya que la idea es crear un dll mucho mas complicado y recien he comenzado a programar en C++ !!!
Gracias de Antemano.

Atte.
ckrings. :D

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error En Aplicacion Dll
« Respuesta #1 en: Miércoles 8 de Agosto de 2007, 18:14 »
0
Ciertamente VB solo soporta stdcall. ¿Estas familiarizado con el uso de la API de Windows desde VB?

Tenes que hacer algo de este estilo:
Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ckrings

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Error En Aplicacion Dll
« Respuesta #2 en: Miércoles 8 de Agosto de 2007, 23:36 »
0
Hola de Nuevo ::
  Gracias por la ayuda, ese asunto ya lo solucione.
  Ahora tengo otro error :( .
  Ya cree mi dll en Visual C++, es un programita un poco complicado, lo que pasa es que tiene funciones internas, yo creo que me equicvoque al declarar esas funciones internas, porque las hice todas de la misma forma.
   Bueno al querer ejecutar desde Visual Basic, llamo a la funcion Cgencod que es la prinicpal y la que llama a las demas funciones; y me da el error:

   "Error '453' en tiempo de ejecucion "
   "No se pude encontrar el punto de entrada de la DLL CGencod  en Gencod.dll"

No encontre nada que pueda orientarme para solucionar esto.

Gracias !!!!

Atte.
Ckrings :D

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error En Aplicacion Dll
« Respuesta #3 en: Miércoles 8 de Agosto de 2007, 23:44 »
0
Tenes un problema con las funciones exportadas, no tiene nada que ver (al menos el error que nos mostraste) con el codigo interno de la DLL. Siguiendo el ejemplo anterior las funciones tienen que estar exportadas EXACTAMENTE igual que como se declaran en VB, en el caso del ejemplo Kernel32.dll exporta la funcion CreateFileA.

Usa el Dependency Walker para comprobar que coincide la exportacion con la declaracion.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ckrings

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Error En Aplicacion Dll
« Respuesta #4 en: Jueves 23 de Agosto de 2007, 17:43 »
0
Hola:
  Perdon por no contestar antes, estaba con muchisisimo trabajo.
  Ya pude solucionar el asunto de mi dll, era el nombre, que lo estaba llamando mal desde el Visual Basic y un for que mas bien pude solucionar de otra forma.
  Ahora ya estan trabajando con el y fue todo un exito !!!!
  Muchas gracias por su ayuda y colaboracion.

 Atte.
CKrings :hola:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error En Aplicacion Dll
« Respuesta #5 en: Jueves 23 de Agosto de 2007, 17:57 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.