A
Alex Dong
Dear all:
My C# program need a string returned from a Fortran Dll.
The Fortran Dll is like this:
SUBROUTINE REDO(s)
!DEC$ ATTRIBUTES DLLEXPORT::REDO, C
CHARACTER*(*) s
!DEC$ ATTRIBUTES REFERENCE :: s
s = 'Let them talk, now!'C
END
And I use C# PInvoke to call it, the client code like this:
public class BackString
{
[DllImport(@"BackString.dll",
EntryPoint="REDO")]
public static extern void REDO(string output);
}
string output = "";
BackString.REDO(output);
When I call this, I got an NullReferenceException, can anybody here explain
why? and how could I return the string?
I also tried to return the value as "Return" but have the same problem. The
..NET Framework's PInvoke example to use C's return string works fine, but I
just can't make the Fortran work.
Thank everybody and hope I could get some reply.
Regards
Alex
My C# program need a string returned from a Fortran Dll.
The Fortran Dll is like this:
SUBROUTINE REDO(s)
!DEC$ ATTRIBUTES DLLEXPORT::REDO, C
CHARACTER*(*) s
!DEC$ ATTRIBUTES REFERENCE :: s
s = 'Let them talk, now!'C
END
And I use C# PInvoke to call it, the client code like this:
public class BackString
{
[DllImport(@"BackString.dll",
EntryPoint="REDO")]
public static extern void REDO(string output);
}
string output = "";
BackString.REDO(output);
When I call this, I got an NullReferenceException, can anybody here explain
why? and how could I return the string?
I also tried to return the value as "Return" but have the same problem. The
..NET Framework's PInvoke example to use C's return string works fine, but I
just can't make the Fortran work.
Thank everybody and hope I could get some reply.
Regards
Alex