Ну, я сделал это с C #, и это было просто:
КОД ФОРТРАНА (Compaq Visual Fortran)
SUBROUTINE TEST_STR(A, N)
!DEC$ ATTRIBUTES DLLEXPORT :: TEST_STR
!DEC$ ATTRIBUTES ALIAS:'TEST_STR' :: TEST_STR
!DEC$ ATTRIBUTES VALUE :: N
INTEGER*4, INTENT(IN) :: N
CHARACTER(LEN=N) :: A
PRINT '(1X,A)', "STRING RECEIVED:"
PRINT '(1X,A8, A50)', "VALUE=", A
END SUBROUTINE
.NET Code (C # 2008)
[DllImport("mathlib.dll")]
static extern void TEST_STR(string A, int n);
...
string S = new string('@', 50);
TEST_STR(S, S.Length);
Но я не могу внести никаких изменений и вернуть строку (пока). Может быть, этого достаточно, чтобы вы пошли.