Creo que este hilo debería estar en el foro de java. Aunque dudo que alguien de ahi le hubiera podido ayudar. En fin, dejo sembrada la inquietud.
debería llamar a la función con otro nombre "decorado"? algo así como imp_tuwhbv??
Pues al final ha funcionado, con la declaracionextern "C"{ void _imp_tuwhbv(long,float&,float&,float&,float&,float&,float&,float&,float&,long,float&,float&,float&,float&);};ha linkado bien y me ha generado la DLL. Ahora ya estoy en "otro nivel" despues de general esta DLL y ejecutar el código desde java que llama indirectamente a l de fortran a traves de este método obtengo un "EXCEPTION_ACCESS_VIOLATION" que creo que debe ser algo con el paso de parametros y punteros con los que no trabajaba desde hace mucho tiempo.
Pues he puesta la linea esta de ensamblador delante de la llamada a la función externa y obtengo el mismo error.
He optado por probar el enlace dinámico y en lugar de enlazar el .lib, llamar directamente a la DLL como me has comentado.Al hacer esto, y generando mi DLL en C++, la llamo desde mi código de Java y sigo teniendo el ACCESS VIOLATION, el cambio es que el "Problematic Frame" que me da el error cambia: usando el enlace estático el problema de java apunta a la DLL que genero en C++, y usando el enlace dinámico el error de la VM me apunta como problema a la DLL de fortran.
puedes ver en esto a lo que te refererias de la convencion de llamada? no se bien como continuar?Crees que seria una buena idea, que el cambie su proyecto para que le genere una libreria estática? de forma que quizas se cambie la forma de llamar a las librerias que utiliza?