FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con una dll de c++
Hola.
Me han pasado una libreria de hecha en c++ y cuando ejecuto la aplicación para acceder a ella me da un 'access violation'. El caso que este mismo codigo le funciona a la persona que realizo la libreria. Este es el codigo
Tambien he probado con stdcall y nada. ¿Alguien sabe que me puede faltar? ¿Alguna idea? Gracias. Última edición por liser fecha: 16-09-2008 a las 13:14:23. |
#3
|
|||
|
|||
Muchas gracias Khronos pero eso tambien lo he provado, ten en cuenta que use 'cdecl' en vez de 'stdcall'.
Como yo comente, esto mismo le compila a la persona que realizo en la libreria en el mismo PC, creo que me debe faltar 'algo' externo al código, pero no se que es. |
#4
|
||||
|
||||
Como dice Khronos te falta el nombre de la funcion en la dll, que no es lo mismo que el nombre de tu funcion.
Prueba asi:
Observa que modifique la que esta en la implementacion .
__________________
[Crandel] |
#5
|
|||
|
|||
Probandolo como me dices me da el siguiente mensaje 'la aplicación no se ha podido iniciar correctamente'.
Lo he probado en Pc's que tienen instalado el visual studio y si que funciona perfectamente mi codigo original. |
#7
|
|||
|
|||
Desgraciadamente, necesito permiso para colgar la libreria, de todas maneras ahora mismo pruebo con el framework
|
#8
|
||||
|
||||
Por lo que dices, entonces el problema no es como la estas llamando, sino las dependencias de la libreria
__________________
[Crandel] |
#9
|
|||
|
|||
Nada, paso la libreria por si la podeis hechar un vistazo, es un rar dentro de un zip, por que se me pasaba un pelin de tamaño para subirla.
|
#10
|
||||
|
||||
Por lo menos en mi maquina falta la dll dwmapi.dll.
No se en que habran compilado esa dll pero me parece que en una maquina con windows vista o XP actualizada con algun paquete nuevo (posiblemente service pack 3)
__________________
[Crandel] |
#11
|
|||
|
|||
Gracias, algo es algo, ya intentare informarme. Cuando consiga algo lo digo
|
#12
|
|||
|
|||
Bueno, después de mucho probar, cambiando en el compilador de c las opciones de linkado (eso es lo que me han dicho), funciono la dichosa librería, ahora me encuentro con otro problema.
La función que tomo de la librería Cuando la llamo y le paso un valor (en este caso 2)
Me devuelve siempre como si nBytes tuviera el valor 1. También probé cambiado Word por Longword , integer, a ver si entendía algo. ¿Alguna ayuda? |
#13
|
||||
|
||||
Habiendo seguido el hilo solo puedo asegurar que estas haciendo las cosas a ciegas, el que te dio la libreria deberia haberte dado tambien las declaraciones de los métodos exportados para que sepas como exportar dichos metodos de la forma correcta, me resulta muy heterodoxo que iteres en dichas declaraciones, asi no conseguiras grandes resultados.
Tambien deberias subir la nueva DLL compilada o lo que tengas pues asi como la dejaste en un anterior post no puedemos ayudarte facilmente. Saludos |
#14
|
|||
|
|||
Pues he cambiado 'directiva de alineaióni' a {$A1} y me ha funcionado, pero no se realmente lo que he hecho. ¿Alguien me puede decir donde encontrar informacion sobre esto? No encuentro nada en el foro.
Gracias por todo |
|
|
|