Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda c++ <-> fortran dll

Estas en el tema de ayuda c++ <-> fortran dll en el foro de C/C++ en Foros del Web. Hola, Necesito ayuda sobre el siguiente tema. Tengo una DLL fortran y quiero comunicar un common de variables a un ejecutable en c++. Seria algo ...
  #1 (permalink)  
Antiguo 06/03/2007, 09:05
 
Fecha de Ingreso: marzo-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
ayuda c++ <-> fortran dll

Hola,
Necesito ayuda sobre el siguiente tema.
Tengo una DLL fortran y quiero comunicar un common de variables a un ejecutable en c++. Seria algo como:

subroutine globalsDEF
!DEC$ ATTRIBUTES DLLEXPORT :: GLOBALSDEF_A
!DEC$ ATTRIBUTES DLLEXPORT,ALIAS:'__imp__global_1' :: /global_1/

real :: global_a
common /global_1/ global_a
...

En c++:
(header)
extern "C" __declspec(dllimport) float *global_1;
...

Con la función no tengo problema para verla en run-time y con DUMPBIN veo que el common está en la tabla de exportación de la DLL, pero no consigo que sea visto por el c++. Estoy link-editando con la .lib de la DLL y siempre tengo el mismo error:
"ConfigureEXE.obj : error LNK2001: unresolved external symbol __imp__global_1"

Como pregunta adicional:
¿Como se haría para acceder al common si solo se conoce su nombre en tiempo de ejecución?

Help needed!!
Gracias por adelantado!!
  #2 (permalink)  
Antiguo 06/03/2007, 10:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: ayuda c++ <-> fortran dll

No solo tiene que estar en la tabla de exportacion de la DLL sino tambien en los exports del .LIB, tal vez si subis el archivo .DLL y .LIB de Fortran te podamos ayudar mejor.

Para obtener la direccion de la variable en tiempo de ejecucion podes usar GetProcAddress (con LoadLibrary la cargas).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:51.